PHP ZipArchive Что означают значения статуса? - PullRequest
7 голосов
/ 02 августа 2010

Я с самого начала пытаюсь написать код PHP для запуска на Linux-сервере на сервере EC2, который будет читать файлы из моего хранилища S3, архивировать их, а затем записывать zip-файл обратно в хранилище.

Я сразу столкнулся с проблемами даже при создании простого zip-архива из некоторых изображений на локальном диске экземпляра EC2, я использую скрипт для проверки идеи из руководства по PHP в Интернете, а также попробовалсценарий от Дэвида Уолша - http://davidwalsh.name/create-zip-php, который выглядит так, как будто это будет здорово.Ни один из них не приводит к фактическому zip-файлу, и оба дают мне разные результаты статуса -

первый фрагмент из руководства php (к которому я добавляю переменную $ thisdir) -

<?php
$zip = new ZipArchive();
$filename = "test112.zip";
$thisdir = "/uploads/";
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
    exit("cannot open <$filename>\n");
}    
$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
?>

output =

numfiles: 2 status: 11

Я не вижу ни одного zip-файла в моей папке «uploads»

Второй бит кода, который я пытаюсь (я не буду публиковать здесь код) - я передаю реальные файлы, и он возвращает

ZIP-архив содержит 2 файла со статусом 0

Что такое сообщения о состоянии.Я проверил, установлены ли правильные библиотеки, посмотрев на вывод phpinfo ();и под заголовком ZIP я вижу -

Zip включен
Расширение версии $ Id: php_zip.c, v 1.1.2.43 2008/01/18 00:51:38 pajoye Exp $
Zip-версия 1.8.11
Libzip-версия 0.8.0-совместимая

Я проверил разрешения файлов PHP-файлов с кодом, который я выполняю, и они установлены на 777, как ипапку, в которую я пытаюсь добавить ziparchive.Я знаю, что это не должно остаться в 777.

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

cheers

Ответы [ 2 ]

13 голосов
/ 17 сентября 2010

Вы можете найти его здесь: http://www.php.net/manual/en/zip.constants.php

Ошибка 11: «Не удается открыть файл»

1 голос
/ 14 апреля 2013

В моем случае я получил код ошибки 11 при открытии zip-файла для чтения. Путь и разрешения в порядке. Я просто изменил разделитель каталогов с обратной косой черты (\) на прямую косую черту (/), и это сработало . Странно то, что пути с косой чертой (/) в Linux находятся там, где я работаю в Windows Server 2003.

...