Zip-файлы PHP на лету

Также следует помнить, что при установке Visual Studio 2010 SP1 некоторые компиляторы C ++ и библиотеки могут быть удалены. Microsoft выпустила обновление , чтобы обеспечить их возврат в вашу систему.

Установите это обновление, чтобы восстановить компиляторы и библиотеки Visual C ++, которые могли быть удалены при установке Visual Studio 2010 с пакетом обновления 1 (SP1). Компиляторы и библиотеки являются частью комплекта разработки программного обеспечения Microsoft Windows для Windows 7 и .NET Framework 4 (позже упоминается как Windows SDK 7.1).

Кроме того, когда вы прочитаете VS2010 SP1 README , вы также заметите, что некоторые замечания были сделаны в отношении установки Windows 7 SDK (см. Раздел 2.2.1). Возможно, к вам применимо одно из этих условий, и поэтому может потребоваться снять флажок компилятора C ++, поскольку установщик SDK попытается установить более старую версию компиляторов ÓR может потребоваться удалить VS2010 SP1 и перезапустить SDK. 7.1 установка, ремонт или модификация.

Условие 1: если флажок «Компиляторы Visual C ++» установлен, когда Windows SDK 7.1 установлен, восстановлен или изменен после установки Visual Studio 2010 с пакетом обновления 1 (SP1), может возникнуть ошибка и некоторые выбранные компоненты не может быть установлен.

Обходной путь: Снимите флажок Компиляторы Visual C ++ перед запуском установки, восстановления или модификации Windows SDK 7.1.

Условие 2: если флажок «Компиляторы Visual C ++» установлен, когда Windows SDK 7.1 установлен, восстановлен или изменен после установки Visual Studio 2010, но Visual Studio 2010 SP1 не удален, может возникнуть ошибка.

Обходной путь: удалите Visual Studio 2010 с пакетом обновления 1 (SP1), а затем повторно запустите установку, восстановление или изменение Windows SDK 7.1.

Однако даже тогда я обнаружил, что мне по-прежнему необходимо удалить любые существующие распространяемые файлы Visual C ++ 2010, как это было предложено mgrandi.

45
задан 30 June 2009 в 05:13
поделиться

2 ответа

Ваш код очень близок. Вам необходимо использовать имя файла вместо его содержимого.

$zip->addFile(file_get_contents($filepath1), 'file1');

должно быть

$zip->addFile($filepath1, 'file1');

http://us3.php.net/manual/en/function.ziparchive-addfile.php

Если вам нужно добавить файлы из переменной вместо файла вы можете использовать функцию addFromString.

$zip->addFromString( 'file1', $data );
9
ответ дан 26 November 2019 в 21:11
поделиться

Если у вас есть доступ к утилите командной строки zip, вы можете попробовать

<?php
$zipped_data = `zip -q - files`;
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="download.zip"');
echo $zipped_data;
?>

, где файлы - это то, что вы хотите заархивировать, и заархивировать местоположение в исполняемый файл zip.

Это предполагает Linux или похоже, конечно. Думаю, в Windows вы могли бы сделать то же самое с другим инструментом сжатия.

Также есть расширение zip , использование показано здесь .

5
ответ дан 26 November 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: