تنزيل الملفات باستخدام PHP - تنزيل ملف واحد فقط في كل مرة!

StackOverflow https://stackoverflow.com/questions/1610168

  •  05-07-2019
  •  | 
  •  

سؤال

لدي ملف PHP يخدم ملفًا، ولكن المشكلة هي أنه بغض النظر عن المتصفح المستخدم، إذا قمت بالنقر فوق رابطين يؤديان إلى ملفين منفصلين، فلن يبدأ التنزيل الثاني حتى يكتمل التنزيل الأول !أيه أفكار؟

تنزيل الكود

header('Content-Type: application/octet-stream');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($fullpath));
readfile($fullpath);

روابط المثال

  • الرابط 1:download.php?downloadfile=1
  • الرابط 2:download.php?downloadfile=2
هل كانت مفيدة؟

المحلول

قد تكون هناك أسباب مختلفة لذلك.

  • أنت تستخدم الجلسات.لذلك يُسمح لبرنامج نصي واحد فقط في كل مرة بتعديل الجلسة.لذا، لا يمكن أن يبدأ التنزيل "ب" إلا بعد انتهاء التنزيل "أ".هل حاولت تنزيلين بشكل متزامن مع التنزيل "أ" في المتصفح "أ" والتنزيل "ب" في المتصفح "ب"؟التحقق من الوصف ل جلسة_كتابة_إغلاق

  • بعض مشكلات HTTP الأخرى حيث لن يفتح متصفحك اتصالات متعددة بالخادم ولكنه يعيد استخدام اتصال واحد وبهذه الطريقة بالطبع يجب الانتظار حتى انتهاء الطلب الأول.

  • بعض إعدادات نظام التشغيل/خادم الويب التي تسمح فقط بعدد محدود جدًا من الاتصالات المتزامنة المفتوحة إما بشكل إجمالي أو لكل مضيف

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top