0

这是我正在尝试上传 zip 并在某个位置提取 zip 的代码 -

//Path where extracted files to be stored, path is correct already checked
$path = Mage::getBaseDir(). DS .'pdf_locator'. DS;

$zip = new ZipArchive;
echo "<pre>";print_r($_FILES);
echo $_FILES['filename']['name'];

$name = $_FILES['filename']['name'];
$res = $zip->open("$name");//File name in server.
echo " --- ", $res, " --- ";
die;
if ($res === TRUE) {
    $zip->extractTo($path);//Destination directory
    $zip->close();
    echo 'successfully extracted';
} else {
    echo 'failed';
}

输出 -

Array
(
    [filename] => Array
        (
            [name] => swap.zip
            [type] => application/zip
            [tmp_name] => /tmp/phpqx2qH2
            [error] => 0
            [size] => 478441
        )

)
swap.zip --- 11 --- 

我期待TRUE,但它正在抛出错误代码11[来自文档]。让我知道我对代码做错了什么。

仅供参考 - Zip 已启用,请查看屏幕截图。

邮编信息

4

1 回答 1

2

我认为您应该使用位于服务器上的文件的“tmp_name”来打开存档?

$name = $_FILES['filename']['name'];

应该是这样的吗?

$name = $_FILES['filename']['tmp_name'];

如果我错了:您是否检查了文件系统权限(r/w/x)?

于 2013-06-25T10:26:56.543 回答