2012-07-05 2 views
1

У меня был код, который работал здесь:ReadFile() скрипт не работает после смены сервера

if (isset($_GET['file']) && isset($_GET['name'])) 
{ 
$file = base64_decode($_REQUEST['file']); 

$ch = curl_init($file); 
curl_setopt($ch, CURLOPT_NOBODY, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, true); 

$data = curl_exec($ch); 
curl_close($ch); 

if (preg_match('/Content-Length: (\d+)/', $data, $matches)) 
{ 
    // Contains file size in bytes 
    $contentLength = (int)$matches[1]; 
} 

header("Content-type: application/x-file-to-save"); 
header("Content-Disposition: attachment; filename=".$_REQUEST['name']); 
header('Content-Length: ' . $contentLength); 
header('Content-Transfer-Encoding: binary'); 

@readfile($file); 

} 

И чем я изменил мой сервер к differenf хост providor, а код купировались работает. Когда я загружаюсь с хром, он просто продолжает загружать и загружать, , но когда я загружаюсь из диспетчера загрузки, например IDM, он получает правильное имя и размер, но когда я нажимаю кнопку запуска, он делает ошибку, которая говорит что-то о том, что не поддерживает возобновление или что-то ...

Снова код работал, когда я использовал другого провайдера.

+0

Этот сценарий является катастрофой безопасности. Вы не выполняете абсолютно никаких проверок безопасности по пройденному пути и теперь открыли дверь для злоумышленника для загрузки ** ANY ** файла на вашем сервере без каких-либо ограничений. Кроме того, поскольку сценарий не работает, разве вы не думаете, что это может быть хорошей идеей ** НЕ ** подавлять ошибки? удалите '@' на readfile ... –

+0

Возможный дубликат [Сделать возобновляемые загрузки с readfile() внешней ссылки PHP] (http://stackoverflow.com/questions/11337534/make-resumable-downloads-with-readfile- of-external-link-php) –

ответ

1

Это может быть ошибки, которые выведенные перед тем readfile()ob_clean(); flush(); использования, чтобы удалить какой-либо вывод, прежде чем readfile

+0

Не будет ли ob_end_flash() делать то же самое? – HtmHell

Смежные вопросы