דברים שאני רוצה לציין מראש,
* חובה שיהיה דרך PHP.
הנה הקוד, בעקרון מה שאני רוצה שעם טעינת הדף הקובץ שיורד ישלח אל הלקוח תוך כדי ההורדה של השרת, זאת אומרת שהגולש לא יצטרך לחכות להורדת הקובץ המלאה אלא שישר ישלח אותו.
הקוד הזה מבצע את זה בצורה טובה, אבל הבעיה היא מהירות ההורדה.
PHP קוד:
function download($url,$name){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$mh = curl_multi_init();
$active = null;
curl_multi_add_handle($mh,$ch);
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
header('Content-Description: File Transfer');
header("Content-Disposition: attachment; filename=".$name);
readfile(curl_multi_getcontent($ch));
}
curl_multi_remove_handle($mh, $ch);
curl_multi_close($mh);
}
ניסיתי לבצע הורדה פשוטה באמצעות שליחת בקשה בcURL והוצאת הפלט דרך readfile (curl_exec()) ולא דרך curl_get_multicontent()...
אשמח אם משהו יוכל לעזור לי, תודה!