Команда Windows apachePHP exec zip не завершается

У нас есть интересная проблема с сервером Windows, на котором работает WAMP (apache, mysql, php). По сути, у нас есть приложение, которое упаковывает папку в zip-файл, который пользователи могут загрузить. Содержимое zip-файла варьируется и должно динамически подготавливаться в соответствии с пожеланиями пользователя.

Мы используем эту команду для архивирования файлов вместе. (Мы также пытались использовать winrar, но возникла та же проблема) exec('c:\Windows\system32\7za a -mx0 -tzip "'.$zipPath.'" "'.$zipDirPath.'"', $output , $return_var);

Проблема в том, что иногда эта команда не завершается. Он успешно создает zip-файл, но не завершает работу и, кажется, продолжает работать. (Не происходит, если та же команда вводится через командную строку)

Если у кого-то есть идеи, как решить эту проблему, пожалуйста, помогите :)


person Balduran    schedule 04.05.2012    source источник


Ответы (1)


Я рекомендую использовать тот же класс PHP ZipArchive, там вы найдете документ для этого.

person Ahmed Jolani    schedule 04.05.2012
comment
У нас есть очень большие файлы (может быть более 2 ГБ, которые будут заархивированы). Поэтому использование PHP-класса — не очень хорошая идея, так как он будет работать очень медленно. Или я ошибаюсь? - person Balduran; 05.05.2012
comment
При выполнении системного вызова из PHP это имеет значение! но когда вы используете тот же процесс (PHP), это лучше, поэтому использование класса ZipArchive будет для вас лучшей идеей, и даже быстрее вы это заметите. - person Ahmed Jolani; 05.05.2012