0

我已经解决了前面的问题,现在它创建了一个 zip 文件并添加了特定文件夹中的所有文件,但是 zip 文件不在我想要的位置,zip 文件只是在公共文件夹中,我该怎么做它以便创建zip文件并在公司文件夹中?

$companyLogoURL = '';
if ($companyLogo) {
    //create folder if not exist
    $destinationPath = 'uploads/company/';
    if (! file_exists($destinationPath)) {
        mkdir($destinationPath, 0777, true);
    }

    $imageExt = $companyLogo->getClientOriginalExtension();
    $imageName = time().$customer_id.'.'.$imageExt;
    $imageFormats = ['jpg', 'png', 'gif', 'bmp', 'jpeg', 'PNG', 'JPG', 'JPEG', 'GIF', 'BMP','svg'];

    //check video validation
    $getFileSize = $companyLogo->getSize();
    if ($getFileSize <= $this::FILE_SIZE_THREE_MB) {
        if (in_array($imageExt, $imageFormats)) {
            $companyLogo->move($destinationPath, $imageName);
            $companyLogoURL = $imageName;

            $zip = new ZipArchive();
            $zip_name = $imageName.".zip";
            if($zip->open(public_path($zip_name), ZIPARCHIVE::CREATE)===TRUE){
            
                $files = File::files(public_path('uploads/company'));
                foreach($files as $key => $value){
                    $samefileNameinZip = basename($value);
                    $zip->addFile($value, $samefileNameinZip);
                }
                $zip->close(); 
            }
        }

如果您有任何建议或您注意到我做错了什么,请告诉我。

谢谢,非常感谢。

4

2 回答 2

0

首先,我会尝试提供文件的绝对路径,以确保我转到正确的目录。我还会检查文件夹权限。

于 2021-09-14T04:20:21.873 回答
0

尝试以下方法检查错误:

$result = $zip->open($zip_name, ZIPARCHIVE::CREATE);

if($result !==TRUE){

   dd($result)

}
于 2021-09-14T05:45:40.003 回答