PDA

View Full Version : مشکل عجیب با تابع filesize هنگام ارسال هدر ها در دانلود فایل .



Mr FTHEL
یک شنبه 25 اسفند 1392, 11:09 صبح
درود
دوستان من مشکلی عجیبی پیدا کردم

وقتی توی هدر با تابع filesize سایز فایل رو میفرستم دانلود منیجر فایل رو کامل دانلود میکنه اما مرورگرها (کروم-اکسپلورر-کروم) کامل دانلود نمیکنند و چند بایت آخر دانلود نمیشه (برای بعضی پسوند ها اینطوری هست مثل zip ولی بعضی پسوند ها کامل دانلود میشه) حالا اگر سایز فایل رو توی هدر نفرستم برعکس میشه یعنی دانلود مینجر کامل دانلود نمیکنه ولی مرورگرها کامل دانلود میکنند

وقتی آدرس رو از دایرکتوری مستقیم میدم هردوشون کامل دانلود میکنند

میشکل چی میتونه باشه ؟ من که واقعا گیج شدم

سپاس

tux-world
یک شنبه 25 اسفند 1392, 14:48 عصر
این آنلاینه؟ میتونی لینک بدی؟

Mr FTHEL
دوشنبه 26 اسفند 1392, 14:31 عصر
http://pro.uploadpa.com/?file=139505287194884_1.zip

MMSHFE
دوشنبه 26 اسفند 1392, 16:42 عصر
بهتره اگه میخواین از Resume Support و... پشتیبانی کنید، با ماژول x-sendfile توی Apache کار کنید.

Mr FTHEL
چهارشنبه 28 اسفند 1392, 10:00 صبح
بهتره اگه میخواین از Resume Support و... پشتیبانی کنید، با ماژول x-sendfile توی Apache کار کنید.

بازم نشد . با مرورگر کامل دانلود نمیکنه . چکار باید کنم ؟

darkcms
چهارشنبه 28 اسفند 1392, 14:58 عصر
با سلام و درود.
از این کد استفاده کنید:

<?php
// We'll be outputting a ZIP file
header('Content-type: application/zip');

// It will be called downloaded.zip
header('Content-Disposition: attachment; filename="downloaded.zip"');

// The ZIP source is in document.zip
readfile('document.zip');
?>
فایل زیپ شما باید با نام document.zip در دایرکتوری باشد.
من با فایرفاکس و اینترنت دانلود منیجر امتحان کردم و هیچ مشکلی نداشت.
به امید فردایی بهتر!:لبخندساده:

Mr FTHEL
جمعه 01 فروردین 1393, 13:38 عصر
من از این هدر استفاده میکنم :


header("X-Sendfile: $ffile");
header("Content-disposition: ".(in_array(pathinfo(addslashes($file->uploaded_name), PATHINFO_EXTENSION), $img_extensions)?"inline":"attachment")."; filename=\"".($file->direct_link&&$file->rename?(toosan_generate_password(8).'.'.pathinfo(a ddslashes($file->uploaded_name), PATHINFO_EXTENSION)):$file->name))."\"";
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
// The three lines below basically make the download non-cacheable
header('Cache-control: private');
header('Pragma: private');
if (!in_array(pathinfo(addslashes($file->uploaded_name), PATHINFO_EXTENSION), $img_extensions))
if(isset($_SERVER['HTTP_RANGE']))
{
list($a, $range) = explode("=", $_SERVER['HTTP_RANGE'], 2);
list($range) = explode(",", $range, 2);
list($range, $range_end) = explode("-", $range);
$range = intval($range);
$range_end = (!$range_end) ? $size-1 : intval($range_end);
$new_length = $range_end-$range+1;
header("HTTP/1.1 206 Partial Content");
header("Content-Length: $new_length");
header("Content-Range: bytes $range-$range_end/$size");
}else
header("Content-Length: ".filesize($ffile));

header('Content-Type: '.$mime_content_type);
ini_set('memory_limit','10240M');
if(isset($_SERVER['HTTP_RANGE']))
{
fseek($ffile, $range);
}

readfile($ffile);
exit();

مشکلش چیه ؟
سپاس