2015-06-21 2 views
1

Я создаю сайт на своем локальном хосте, который должен позволить людям загружать некоторые .rar-файлы.php download link to rar

В моем индексе я создал некоторые теги, как это:

$filename = "Test001.rar"; 
<a href="download.php?file='.$filename.'">'.$filename.'</a>'; 

Это просто пример одного файла, но в моем PHP файл «download.php» У меня есть проблема, когда Я хочу, чтобы загрузить файл .rar

Это download.php

<?php 
echo "Welcome to Knowledge!"; 

if (isset($_GET['file']) && basename($_GET['file']) == $_GET['file']) 
{ 
    $file = $_GET["file"]; 
    $path = 'C:\xampp\htdocs\TestSite'."\\".$file; 
} 

$err = $path.'Sorry, the file you are requesting doesnt exist.'; 

if (file_exists($path) && is_readable($path)) 
{ 
    //get the file size and send the http headers 
    $size = filesize($path); 


    header('Content-Type: application/x-rar-compressed, application/octet-stream'); 
    header('Content-Length: '.$size); 
    header('Content-Disposition: attachment; filename='.$file); 
    header('Content-Transfer-Encoding: binary'); 

    readfile($filename); 
} 
?> 

Он открывает поток в правильном направлении, но я понимаю, что размер файла составляет около 200 байт, а не по всей длине, что около 200MB.

Как исправить эту проблему?

+0

Что произойдет, если вы хотите скачать файл? вы до сих пор получаете 200-байтовый неполный файл? –

+0

Нет, он загружает файл rar размером 200 байт или что-то в этом роде –

+1

Откройте файл в текстовом редакторе и посмотрите, действительно ли это текст с сообщениями об ошибках –

ответ

0

Извлеките инструкцию echo, не должно быть никакого выхода перед заголовками. Изменить readfile ($ filename) to readfile ($ file)

+0

Все еще не работает :( –

+0

Это также может быть проблема с разрешениями. Проверьте журналы. – user2182349

+0

Загрузите файл, но с неправильным размером –