اذهب إلى المحتوى
  • 0

طريقة تحميل الملفات excel في لارافل من خلال axios

Amir Alsaeed

السؤال

لدي الكود التالي أستطيع من خلاله الحصول على ملف excel المصدّر من لارافل من خلال blade:

return (new NewsExport())->download($file_name);

ولكنني أحاول الحصول على الملف من خلال axios في تطبيق react، فحاولت تنفيذ الكود التالي لكن يتم تحميل الملف معطوب ولا يعمل بالشكل الصحيح:

let response = await myApi.exportList(payload).then(response => {
    const url = window.URL.createObjectURL(new Blob([response.data]));
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', 'myexcelfile.xlsx');
    document.body.appendChild(link);
    link.click();
});

ماهي الطريقة الصحيحة لتنفيذ ذلك؟

تم التعديل في بواسطة Amir Alsaeed
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

لقد نسيت تحديد نوع الرد response الخاص بالملف (responseType) من نمط blob. ولذلك قد يظهر الملف بشكل معطوب أو لا يتم تحميله نهائياً.

لحل المشكلة يمكن تعديل الكود لديك وإضافة التالي:

const options = {
    method: 'POST',
    responseType: 'blob', <=== ضرورية عند التعامل مع الملفات
    data: formData,
    url: '/your_api_link',
};

return myAPI.request(options);

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

عادة عند تخزين الملفات في السيرفر يكونون في مجلد مثلا storage واذا كان السيرفر مثلا يشتغل على https://website.com سيكون رابط التحميل

https:/website.com/storage/file.xlsx

في الclient  يمكن استخدام العنصر a للتحميل باستعمال الرابط

   <a
     target="_blank"
     rel="noreferrer"
     href="https://website.com/storage/file.xlsx"
   >
      تحميل
   </a>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...