Amir Alsaeed نشر 8 يونيو 2021 أرسل تقرير نشر 8 يونيو 2021 (معدل) لدي الكود التالي أستطيع من خلاله الحصول على ملف 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(); }); ماهي الطريقة الصحيحة لتنفيذ ذلك؟ تم التعديل في 8 يونيو 2021 بواسطة Amir Alsaeed اقتباس
1 Sam Ahw نشر 8 يونيو 2021 أرسل تقرير نشر 8 يونيو 2021 لقد نسيت تحديد نوع الرد response الخاص بالملف (responseType) من نمط blob. ولذلك قد يظهر الملف بشكل معطوب أو لا يتم تحميله نهائياً. لحل المشكلة يمكن تعديل الكود لديك وإضافة التالي: const options = { method: 'POST', responseType: 'blob', <=== ضرورية عند التعامل مع الملفات data: formData, url: '/your_api_link', }; return myAPI.request(options); 1 اقتباس
0 Salah Eddin Beriani2 نشر 8 يونيو 2021 أرسل تقرير نشر 8 يونيو 2021 عادة عند تخزين الملفات في السيرفر يكونون في مجلد مثلا 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> 1 اقتباس
السؤال
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 Alsaeed2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.