这是我试图在某个位置上传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已启用,请检查屏幕截图。
答案 0 :(得分:2)
我认为您应该使用位于服务器上的文件的'tmp_name'来打开存档?
$name = $_FILES['filename']['name'];
应该是这样吗?
$name = $_FILES['filename']['tmp_name'];
如果我错了:你检查了文件系统权限(r / w / x)吗?