- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
因此,我正在尝试创建一个批量上传功能,用户可以在其中上传包含一堆 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/
我正在使用 extractTo PHP PharData 类的方法来检查 phar 文件的内容并运行一些 strage 结果。我已经达到字节级侦探工作的极限,希望这里有人能够帮助我解决这个问题。 细节
因此,我正在尝试创建一个批量上传功能,用户可以在其中上传包含一堆 PDF 的单个 zip 文件,然后这些 PDF 将得到处理并存储在服务器上等。 到目前为止我有这个... $serverpath =
我在这里扯头发。上周我一直在试图弄清楚为什么 ZipArchive extractTo 方法在 Linux 上的行为与在我们的测试服务器 (WAMP) 上的行为不同。 下面是问题的最基本的例子。我只需
我创建了一个应用程序,它使用 ZipArchive 类(php 中的标准)中的方法 extractTo() 并且我在 Windows 7 上的本地主机 apache 服务器上测试它没有任何问题。但是在
我完全无法解释为什么这不起作用。帮助! $archive = "x.zip"; $zip = new ZipArchive(); $res = $zip->open($archive); if ($r
当我运行时: php composer.phar require kartik-v/yii2-widgets "*" 我得到以下输出(使用 -vvv 详细标志): - Installing kar
我正在尝试在 WSL 上安装 Laravel。到目前为止,我已经安装了所有东西,但是当我运行 laravel 命令时,我从 ZipArchive 得到了一个 Permission Denied。有解决
我想将 .tar.gz 文件提取到特定文件夹中。我使用 cURL 从 MailChimp 批处理操作下载 .tar.gz 文件。我使用以下代码提取 tar 文件。 $phar = new \PharD
我是一名优秀的程序员,十分优秀!