توی دانلود فایل بزرگ (بالای 100 مگ) با php مشکل دارم
من می خوام با کدم فایلهای مختلف دانلود کنم ولی متاسفانه وقتی اندازه فایل بزرگ میشه نمی دونم چرا برنامه قطع میشه.فایلهای چند مگابایتی مث آهنگ رو بدون مشکل دانلود می کنه.ینی حجم تا 5 مگ رو تست کردم درسته ولی بالای 100 که می زنم قطع میشه. انگار یه تایمی بیشتر کار نمی کنه. تایم curl رو زیاد کردم ولی بازم قطع میشه. نمی دونم چرا. این کدمه
ini_set('max_execution_time', '300000');
ini_set('display_errors', 1);
ini_set('memory_limit','500M');
error_reporting(E_ALL);
//$url = $_POST['url'];
$url = 'http://s3.dlserver.info/serial/Vikings/01-480p.x264/Vikings.S01E03.480p.mkv';
if(fileDownloader($url))
echo 'DOWNLOAD SUCCESSFUL';
else
echo 'DOWNLOAD FAILED';
function fileDownloader($url){
$ch = curl_init($url);
$dir = '/var/www/html/orangePi/panel/files/';
$file_name = basename($url);
$save_file_loc = $dir.$file_name;
$fp = fopen($save_file_loc, 'w+');
curl_setopt($ch, CURLOPT_FILE, $fp);
//curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5000);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$res = curl_exec($ch);
curl_close($ch);
fclose($fp);
if($res)
return true;
else
return false;
}
لینک به یه فایل بزرگ توش گذاشتم واسه تست. اگه لینک یه فایل اندازه یه آهنگ بذارید دانلود می کنه.همیشه هم یه تایم ثابتی اجرا میشه. مثلا نزدیک 15 ثانیه. نمی دونم چرا
کسی می تونه کمک کنه؟
نقل قول: توی دانلود فایل بزرگ (بالای 100 مگ) با php مشکل دارم
سلام
برای من بسته نشد و دانلود کرد. اگر بعد از زمان مشخصی دانلود متوقف می شود, احتمال زیاد مشکل از محدودیت زمان یا حافظه می باشد.(بعید هست مشکل حافظه داشته باشید چون curl همزمان دانلود و ذخیره فایل را انجام میدهد) در بسیاری از سرورهای اشتراکی دستور ini_set غیرفعال است. برای تنظیم زمان از دستور set_time_limit استفاده کنید.
حداقل لینک فصل جدید را قرار میدادید :ناراحت:
نقل قول: توی دانلود فایل بزرگ (بالای 100 مگ) با php مشکل دارم
نقل قول:
نوشته شده توسط
ali_sed
سلام
برای من بسته نشد و دانلود کرد. اگر بعد از زمان مشخصی دانلود متوقف می شود, احتمال زیاد مشکل از محدودیت زمان یا حافظه می باشد.(بعید هست مشکل حافظه داشته باشید چون curl همزمان دانلود و ذخیره فایل را انجام میدهد) در بسیاری از سرورهای اشتراکی دستور ini_set غیرفعال است. برای تنظیم زمان از دستور set_time_limit استفاده کنید.
حداقل لینک فصل جدید را قرار میدادید :ناراحت:
من روی یه vps دارم این کد رو تست می کنم. حدود یه گیگ رم داره. همین کدی که گذاشتم رو هم می زنم. بازم یه تایمی کار می کنه باز متوقف میشه.دیگه تنظیمات خاصی تو php.ini و اینا هم ندادم که محدودیت درست کرده باشم اگر هم باشه با همین کانفیگ هایی که ست کردم اول کدم دیگه اوکی باید باشه. نمی دونم واقعا چشه. شما هم همین کد رو تست کردید یا خودتون نوشتید؟
نقل قول: توی دانلود فایل بزرگ (بالای 100 مگ) با php مشکل دارم
نقل قول:
نوشته شده توسط
newby guy
من روی یه vps دارم این کد رو تست می کنم. حدود یه گیگ رم داره. همین کدی که گذاشتم رو هم می زنم. بازم یه تایمی کار می کنه باز متوقف میشه.دیگه تنظیمات خاصی تو php.ini و اینا هم ندادم که محدودیت درست کرده باشم اگر هم باشه با همین کانفیگ هایی که ست کردم اول کدم دیگه اوکی باید باشه. نمی دونم واقعا چشه. شما هم همین کد رو تست کردید یا خودتون نوشتید؟
الان روی یه سرور دیگه هم تست کردم که 4 گیگ رم داره. روی اونم جواب نداد. فک نکنم بخاطر رم باشه. کد هم که شما می گید مشکل نداره.بنظر شما کجای کار مشکل داره؟
نقل قول: توی دانلود فایل بزرگ (بالای 100 مگ) با php مشکل دارم
از این دستور استفاده کردید؟ set_time_limit
محدودیت حافظه منظورم تنظیمات php هست.
نقل قول: توی دانلود فایل بزرگ (بالای 100 مگ) با php مشکل دارم
سلام
این نوع استفاده بمنظور تغییر دامنه فشار زیادی رو به منابع PHP وارد میکنه, کد اجرا بشه در صورتی که تعداد دانلود های همزمان بیشتر بشه, مثلاً 4 یا 5 دانلود ( بیشتر یا کمتر ) میتونه باعث down شدن PHP یا حتی هنگ کردن وب سرور بشه
البته در وب سرورهایی مثل Nginx قابلیتی بنام proxy وجود داره که اگه روی اون وقت بگذارید شاید به نتیجه برسید