Возможный дубликат:
Открыть файл, записать в файл, сохранить файл в виде zip и потока для пользователя для загрузки
У меня есть txt-файл в папке uploads, где мне нужно добавить этот файл и создать ZIP на лету, и попросить пользователя загрузить Zip-файл, который должен содержать текстовый файл. Как я это делаю, и тем более, что заголовки, необходимые для запрашивая пользователя для загрузки. can any one Help me out. Я использовал те же самые константы из PHP Manual.Iam Используя ту же самую функцию для zip-файла « http://davidwalsh.name/create-zip-php » и iam, пишущего этот код, и я получаю запрос на загрузку zip, но я получаю предупреждающее сообщение, когда я extarct файл
$zip_file = "my-archive.zip"; $file_path="../../../downloads/"; $files_to_zip = array($file_path."test_testing.txt"); $result = create_zip($files_to_zip,'my-archive.zip'); header('Content-Description: File Transfer'); header('Content-Transfer-Encoding: binary'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header("Content-type: application/zip"); header("Content-Disposition: attachment; filename=".$zip_file); header("Pragma: no-cache"); header("Expires: 0"); readfile($zip_file);
Сообщение об ошибке «Предупреждение» означает, что «один или несколько файлов в этом архиве используют« .. »(родительскую папку) как часть информации о папке"
В функции create_zip () измените
foreach($valid_files as $file) { $zip->addFile($file,$file); }
в
foreach($valid_files as $file) { $zip->addFile($file,pathinfo($file,PATHINFO_BASENAME)); }
Это будет работать до тех пор, пока у вас нет файлов с повторяющимися именами, но разные каталоги в вашем массиве файлов