الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[طلب مساعدة] تحميل الملفات عن طريق الphp

بدأه NO BODY CAN BEAT ME في 3 سبتمبر 2008 · 5 رد · 917 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي سكربت يقوم بجلب الملف المراد تحميله بعد التاكد من ان المستخدم هو عضو فالموقع

الملفات موجودة في مجلد محمي بكلمة سر لمنع التحميل المباشر يعني الشخص فقط يستطيع التحميل عن طريق السكربت

الكود غال تمام والحمد لله لكن الملفات كبيرة الحجم يفصل الدونلود قبل انتهاء التحميل لا اعرف لقد بحثت كثيرا من دون جدوا

هذا هو الكود المستخدم

$

downloads = "downloads";

// Regular expression matching a safe filename.

// Filename must contain ONLY letters, digits, and underscores,
// with a single dot in the middle. NO slashes, NO double dots,
// NO pipe characters, nothing potentially dangerous.

// ^ matches the beginning of the string.
// \w matches a "word" character (A-Z, a-z, 0-9, and _ only).
// The "+" sign means "one or more."
// \. matches a single dot.
// And the final $ matches the end of the string.

$safeFilename = '/^\w+\.\w+$/';

// Now get the filename from the user
$filename = $_GET['filename'];

if ($filename == '') {
  # We don't have a filename yet, so generate
  # a file-picking menu page.
  error("File does not exist");

} else {
  # We have a filename, so download the file.
  download();
}  


function download()
{
  global $filename, $safeFilename, $downloads;
  // MAKE SURE THE FILENAME IS SAFE!
  if (!preg_match($safeFilename, $filename)) {
	error("Bad filename");
  }
  // Now make sure the file actually exists
  if (!file_exists("$downloads/$filename")) {
	error("File does not exist");
  }
  header("Expires: 0");
  header("Content-disposition: attachment; filename=$filename");
  header("Content-type: application/octet-stream");
  readfile("$downloads/$filename");
  // Exit successfully. We could just let the script exit
  // normally at the bottom of the page, but then blank lines
  // after the close of the script code would potentially cause
  // problems after the file download.
  exit(0);
}


function error($message) {
  // You might want to output a more attractive error
  // message page - hey, you're the web designer
?>
<html>
<head>
<title><?php echo $message?></title>
</head>
<body>
<h1><?php echo $message?></h1>
</body>
</html>
<?php
}

?>

يا ريت تساعدوني يعني المشكلة اواجهها مع الملفات الكبيرة

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#2

يا ريت حد يساعدني بالموضوع او حتى يعطيني طرف خيط او تلميح للحل

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#3

غير في ملف php.ini أو أنشئ ملف .htaccess

وغير القيم الخاصة بعملية Upload

php_value max_execution_time 
php_value max_input_time 
php_value post_max_size 
php_value upload_max_filesize

I Say Nothing

#4

شكرا على الرد اخي لكن انا عمليتي download وليست upload

وجاري التجربة

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#5

آسفة ياخي اتسرعت وماانتبهت للسؤال :blush:

I Say Nothing

#6

عليك بزيادة الوقت لعلم السيكريبت

		@set_time_limit(55000);

وكما قال الأخ mana80 :

أضف في ملف php.ini

upload_max_filesize 50M
post_max_size 50M
memory_limit 50M
max_execution_time 55000

ينفع أيضاً - والله اعلم - أيضاً لعملية التحميل لأنه يزيد محتوى الذاكرة والوقت .

تم تعديل هذه المشاركة بواسطة أبو محمد اللحياني في 5 سبتمبر 2008 في 23:36

ولو وافيت ربك دون ذنب *** وناقشك الحساب إذاً هلكتا

ولم يظلمك في عملٍ ولكن *** عسير أن تقوم بما حملتا

مواضيع مشابهة