我在 centos 7 上运行 Virtuamin,我无法在 php 7.4 上安装 ziparchive,但是当我切换到 php 7.2 时,它可以工作。我需要 php 7.4 才能工作,因为它更快,而 wordpress 脚本需要 7.3+ 才能有效工作。
如果我在原始php中运行它,PHP ZipArchive工作正常,但当我尝试在我的Laravel项目中运行时,遇到"找不到类"错误:
WidgetController.php第40行中的FatalErrorException:未找到类'App\Http\Controllers\ZipArchive'
这是我在laravel控制器中的功能:
public function installHello()
{
$file_path = base_path("resources/assets/packages/helloworld.zip");
$zip = new ZipArchive;
if ($zip->open($file_path) === TRUE) {
$zip->extractTo(base_path('packages/tkabir/'));
$zip->close();
return redirect()->back();
//echo 'ok';
} else {
echo 'failed';
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在index.php文件中尝试的示例:
<?php
$zip = new ZipArchive;
if ($zip->open('E:/xampp/htdocs/ziptest/helloworld.zip') === TRUE) {
$zip->extractTo('E:/xampp/htdocs/ziptest/');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
Run Code Online (Sandbox Code Playgroud)
知道为什么它不会在laravel中工作吗?
我正在尝试使用PHP 7.2.7创建一个加密的,受密码保护的ZIP文件。但是,我收到以下错误消息:
Attempted to call an undefined method named "setEncryptionName" of class "ZipArchive".
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/zh/ziparchive.setencryptionname.php
如果我删除了,$zip->setEncryptionName()那么一切都可以100%起作用,除了ZIP文件没有密码保护。
我已经完成了Google和论坛搜索,找不到任何遇到过类似问题的人,这可能是因为PHP版本和功能还很新。
我想创建一个.zip存档,将其上传到Amazon S3,然后从服务器中删除创建的.zip.步骤1和2工作正常,但删除步骤返回:
unlink(temp/file.zip): Resource temporarily unavailable
我已经尝试了unset所有相关的变量和资源,但我仍然得到错误.
这是代码:
$zipFile = 'temp/file.zip';
// create the zip archive:
$z = new \ZipArchive();
$z->open($zipFile, \ZipArchive::CREATE);
$z->addEmptyDir('testdirectory');
// add a file
$filename = 'fileName.txt';
$content = 'Hello World';
$z->addFromString('testdirectory/' . $filename, $content);
$z->close();
// upload to S3
$s3 = AWS::createClient('s3');
$result = $s3->putObject(array(
'Bucket' => 'my-bucket-name',
'Key' => basename($zipFile),
'SourceFile' => $zipFile
));
// check to see if the file was uploaded
if ($result['@metadata']['statusCode'] == "200") {
$uploaded = true;
}
// …Run Code Online (Sandbox Code Playgroud)