[英]File does not exist while downloading Zip file in Laravel
I'm getting error as the "file does not exist" as folder does exist.我收到错误,因为文件夹确实存在“文件不存在”。
The file "../storage/app/public/bks/case_1/XsIbdGSJow7O3fhq9LyU.zip" does not exist
文件“../storage/app/public/bks/case_1/XsIbdGSJow7O3fhq9LyU.zip”不存在
I have checked with Database field name zipname
is not present but job_id
is present.我检查了数据库字段名称
zipname
is not present 但job_id
存在。 I'm not sure but do we have to have field name as zipname
present in Database for this to download.我不确定,但我们是否必须将字段名称作为
zipname
存在于数据库中才能下载。
public function downloadZip(Request $request)
{
@$job_id = $request->job_id;
@$filenames = DB::table('analytics_report')->where('job_id',$job_id)->get()->pluck('filename')->toArray();
@$zipname = $request->job_id;
$zip = new \ZipArchive;
$zip->open($zipname, \ZipArchive::CREATE);
foreach ($filenames as $filename){
$zip->addFile($filename);
}
$zip->close;
@$path = '../storage/app/public/bks/case_1/'.$zipname;
return response()->download($path);
}
Thanks!
You have a typo here $zip->close;
你有一个错字
$zip->close;
. . Should be
$zip->close()
;应该是
$zip->close()
;
Your code needs some checks before everything else.您的代码需要先进行一些检查。
public function downloadZip(Request $request)
{
if($request->has("job_id") === false) return;
$job_id = $request->job_id;
$filenames = DB::table('analytics_report')
->where('job_id',$job_id)
->get()
->pluck('filename')
->toArray();
if (count($filenames) == 0) return;
$zipname = $request->job_id;
$zip = new \ZipArchive;
$zip->open($zipname, \ZipArchive::CREATE);
foreach ($filenames as $filename){
$zip->addFile($filename);
}
$zip->close();
$path = stprage_path('app/public/storage/bks/case_1/'.$zipname);
return response()->download($path);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.