У меня есть сценарий cURL для загрузки файла, но размер загружаемого файла не совпадает с размером сервера:
Всплывающее сообщение окна загрузки:
Document (389 bytes)
Но файл MP3 и данный документ.
На моем компьютере, когда я проверяю информацию о файле, он предоставляется:
Kind: MP3 audio
Size: 389 bytes (4 KB on disk)
Код
$url = strip_tags($_GET['path']);
//echo $url.'<br>';
$fileName = strip_tags($_GET['file']);
//echo $fileName;
set_time_limit(0);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/download");
header("Content-Disposition: filename=$fileName");
set_time_limit(0);
$fp = fopen (dirname(__FILE__) . '/localfile.tmp', 'w+');//This is the file where we save the information
$ch = curl_init(str_replace(" ","%20",$url.$fileName));//Here is the file we are downloading, replace spaces with %20
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp); // write curl response to file
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch); // get curl response
curl_close($ch);
fclose($fp);
Командная строка для проверки размера файла на сервере:
419036 Mar 24 2014 001.mp3
Спасибо за вашу помощь
Это сработало для меня. Также убедитесь, что у пользователя www достаточно разрешения на запись в каталог. Вы использовали неправильные HTTP-накопители для завитки. Вот почему загрузка не удалась.
<?php
$url = strip_tags($_GET['path']);
//echo $url.'<br>';
$fileName = strip_tags($_GET['file']);
//echo $fileName;
set_time_limit(0);
$fp = fopen (dirname(__FILE__) . '/localfile.tmp', 'w+');//This is the file where we save the information
$url = str_replace(" ","%20",$url.$fileName);
$ch = curl_init($url);//Here is the file we are downloading, replace spaces with %20
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Host www.alfirdaous.com',
'User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:42.0) Gecko/20100101 Firefox/42.0',
'Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language en-US,en;q=0.5',
'Accept-Encoding gzip, deflate',
'Connection keep-alive',
));
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp); // write curl response to file
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch); // get curl response
curl_close($ch);
fclose($fp);
?>
echo file_get_contents(dirname(__FILE__) . '/localfile.tmp');
в конце сценария и посмотрим, что вы получите.