gpt4 book ai didi

PHP ZipArchive extractTo 问题

转载 作者:可可西里 更新时间:2023-10-31 23:37:53 25 4
gpt4 key购买 nike

因此,我正在尝试创建一个批量上传功能,用户可以在其中上传包含一堆 PDF 的单个 zip 文件,然后这些 PDF 将得到处理并存储在服务器上等。

到目前为止我有这个...

$serverpath = $_SERVER['DOCUMENT_ROOT'];

if(array_key_exists('bulk_filename', $_FILES)){
if ($_FILES['bulk_filename']['error'] === UPLOAD_ERR_OK) {

$file_name = $_FILES['bulk_filename']['name'];
$new_zip_file = $serverpath . '/customerdata/tmp_invoices/' . $file_name;
move_uploaded_file($_FILES['bulk_filename']['tmp_name'], $new_zip_file);

// zip file is coming in as "-rw-r--r--" and should be "-rwxr-xr-x"
exec('chmod -R 755 ' . $serverpath . '/customerdata/tmp_invoices/' . $file_name);

// Extract the files from zip
$zip = new ZipArchive;
$res = $zip->open($new_zip_file, ZipArchive::OVERWRITE);
if ($res !== true) {
die("Cannot open {$new_zip_file} for writing!");
}
else{
$res = $zip->extractTo($serverpath . '/customerdata/tmp_invoices/');
$zip->close();

////////////////////////////////////////////
// I ALWAYS REACH THIS CODE BLOCK
// and $res always equals 1/true
////////////////////////////////////////////
}
} else
die("Upload failed with error code " . $_FILES['bulk_filename']['error']);
}

我看到的问题是,即使 extractTo 函数返回成功提取 (1),我也没有看到显然已提取的文件?!

我总是看到 Archive.zip 文件,所以我知道它正在正确上传...

-rwxr-xr-x 1 nginx nginx 68512374 May  4 12:39 Archive.zip

关于我做错了什么有什么想法吗?! :-/

环境:运行 PHP 5.3.3 的 Centos 6

更新

下面的(完全限定路径)没有抛出任何错误,只是似乎没有进行任何类型的提取?!

$zip->extractTo($serverpath . '/customerdata/tmp_invoices/');

下面(相对路径)抛出一个 Warning: ZipArchive::extractTo(): Permission denied in... 错误?!

$zip->extractTo('/customerdata/tmp_invoices/'); 

大家好

最佳答案

对于那些因类似问题而发现此问题的人...

我设法通过更改第二个参数“解决”了这个问题:

从这里:$zip->open($new_zip_file, ZipArchive::OVERWRITE)

对此:$zip->open($new_zip_file, ZipArchive::CREATE)

php.net

ZipArchive::CREATE(整数)

如果存档不存在则创建。

ZipArchive::OVERWRITE(整数)

始终开始一个新的存档,如果文件已经存在,此模式将覆盖该文件。

关于PHP ZipArchive extractTo 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37026953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com