2013-07-17 4 views
0

Я пытаюсь загрузить zip-папку.Загрузка zip-папки с использованием php

Вот мой код

header('Content-Type: application/zip'); 
header('Content-disposition: attachment; filename=filename.zip'); 
header('Content-Length: ' . filesize($zipfilename)); 

    $files = array('../upload/ES:AIJ_168/M:MSW.doc','../upload/ES:AIJ_168/M:MSW.pdf'); 



$zipname = 'file.zip'; 
$zip = new ZipArchive; 
$zip->open($zipname, ZipArchive::CREATE); 
foreach ($files as $file) { 
    $zip->addFile($file); 
} 
$zip->close(); 

readfile($zipname); 
?> 

Но когда я бегу этот script.It загрузки только один пустой папки для загрузки. Я не знаю, почему это происходит. Пожалуйста, помогите мне.

+0

Пробовали ли вы отладку файла, глядя на него без заголовков для сообщений об ошибках? Включено ли сообщение об ошибках? –

+0

Ошибки:! Невозможно создать upload \ ES: AIJ_168 \ M: MSW.doc Неверное имя файла, имени каталога или тома. ! Попытка исправить недопустимое имя файла –

+0

Взгляните на это: http://stackoverflow.com/questions/2088267/download-of-zip-file-runs-a-corrupted-file-php?rq=1 – Matheno

ответ

0

Я видел три очка в вашем вопросе

1) Вы отправляете длину содержимого до создания файла

2) При выборке размера файла, который вы используете $zipfilename, но при открытии zip-файл для добавления файлов, которые вы используете $zipname.

3) Вы используете двоеточие (:) в именах файлов. Я не уверен об этом использовании в unix, но вы не можете назвать файл с двоеточием на окнах.

Я считаю, что код будет выглядеть следующим образом:

header('Content-Type: application/zip'); 
header('Content-disposition: attachment; filename=filename.zip');  

$files = array('../upload/ES-AIJ_168/M-MSW.doc','../upload/ES-AIJ_168/M-MSW.pdf'); 

$zipname = 'file.zip'; 
$zip = new ZipArchive; 
$zip->open($zipname, ZipArchive::CREATE); 
foreach ($files as $file) { 
    $zip->addFile($file); 
} 
$zip->close(); 
header('Content-Length: ' . filesize($zipname)); 
readfile($zipname); 

PS .: Я использовал знак минус (-) вместо двоеточия в именах файлов

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