2012-06-22 3 views
2

я написал код для загрузки RAR файл это работа в порядке, ноКак загрузить файл RAR с помощью PHP

 $name = 'file.rar'; 
     $data = file_get_contents("file.rar"); 
     $fh = fopen("$name", 'w') or die("can't open file"); 
     fwrite($fh, $data); 
     fclose($fh); 

     header("Cache-Control: public"); 
     header("Content-Description: File Transfer"); 
     header("Content-Length: ". filesize("$name").";"); 
     header("Content-Disposition: attachment; filename=$name"); 
     header("Content-Type: application/octet-stream; "); 
     header("Content-Transfer-Encoding: binary"); 
     readfile($name); 
     exit; 

после загрузки, он показывает ошибки неожиданный конец архива в то время как открыть этот файл, не извлечет полностью дать мне некоторые предложения, заранее спасибо

+0

- это загруженный файл rar того же размера? – ariefbayu

+1

Почему вы сначала копируете файл в память, а затем записываете содержимое поверх исходного файла, а не возвращаете его напрямую? И «$ name» - бессмысленная трата, вы можете напрямую использовать $ name. –

ответ

1

вы можете сделать ZIP-файл, используя следующий код на вашем веб-сервере

<?php 
$za = new ZipArchive(); 

$za->open('test_with_comment.zip'); 
print_r($za); 
var_dump($za); 
$za->addFile('index.txt', 'newname.txt'); // original file , file to be added in zip 

echo "numFiles: " . $za->numFiles . "\n"; 
echo "status: " . $za->status . "\n"; 
echo "statusSys: " . $za->statusSys . "\n"; 
echo "filename: " . $za->filename . "\n"; 
echo "comment: " . $za->comment . "\n"; 

for ($i=0; $i<$za->numFiles;$i++) { 
    echo "index: $i\n"; 
    print_r($za->statIndex($i)); 
} 
echo "numFile:" . $za->numFiles . "\n"; 
?> 

После этого у ou может указать ссылку для скачивания ..

1

Этот файл.rar генерирует код: Я попробовал ваш код без этого кода

 $data = file_get_contents("file.rar"); 
     $fh = fopen("$name", 'w') or die("can't open file"); 
     fwrite($fh, $data); 
     fclose($fh); 

Сво работает нормально для меня.

+0

загружается, но при открытии этого файла отображается ошибка – chaitu

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