亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將多個文件下載為 ZIP - Laravel 7

將多個文件下載為 ZIP - Laravel 7

PHP
白衣染霜花 2022-12-11 16:31:41
如果我dd($files);我有array:4 [▼  0 => "/Users/jdoe/Sites/laravel7/public/img/portfolio/58-Admin-Site-Dashboard/126/full.jpg"  1 => "/Users/jdoe/Sites/laravel7/public/img/portfolio/58-Admin-Site-Dashboard/127/full.jpg"  2 => "/Users/jdoe/Sites/laravel7/public/img/portfolio/58-Admin-Site-Dashboard/128/full.jpg"  3 => "/Users/jdoe/Sites/laravel7/public/img/portfolio/58-Admin-Site-Dashboard/130/full.jpg"]下載()public function download($id){    $portfolioImages = PortfolioImage::where('portfolio_id',$id)->get();    $files = [];    foreach ($portfolioImages as $i => $portfolioImage) {        $files[$i] = public_path(). $portfolioImage->image_path;    }    // dd($files);    $zip = new ZipArchive;    $fileName = $id.'.zip';    if ($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE)    {        foreach ($files as $key => $value) {            $relativeNameInZipFile = basename($value);            $zip->addFile($value, $relativeNameInZipFile);        }        $zip->close();    }    return response()->download(public_path($fileName));}我一直收到這個錯誤ZipArchive::close():創建臨時文件失敗:權限被拒絕如何防止此錯誤?
查看完整描述

1 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

啊..沒關系,發現我自己的問題。


$zipFile = public_path().'/assets/fe/img/portfolio/'.$folderName.'/'.$folderName.'.zip';


工作代碼

    public function download($id)

    {


    $portfolioImages = PortfolioImage::where('portfolio_id',$id)->get();


    $files = [];

    foreach ($portfolioImages as $i => $portfolioImage) {

        $files[$portfolioImage->id] = public_path(). $portfolioImage->image_path;


    }


    // dd($files);


    $portfolio  = Portfolio::find($id);

    $folderName = $portfolio->id.'-'.str_replace(' ', '-',$portfolio->name);

    $zip        = new ZipArchive;

    $zipFile    = public_path().'/assets/fe/img/portfolio/'.$folderName.'/'.$folderName.'.zip';


    if ($zip->open($zipFile, ZipArchive::CREATE) === TRUE)

    {


        //add files into a zip

        foreach ($files as $key => $value) {


            //replace word "full" with $portfolioImage->id

            $relativeNameInZipFile = str_replace('full',$key,basename($value));

            $zip->addFile($value, $relativeNameInZipFile);

        }


        $zip->close();

    }


    return response()->download($zipFile);


}

結果?

http://img1.sycdn.imooc.com//639595bd0001898406340309.jpg

查看完整回答
反對 回復 2022-12-11
  • 1 回答
  • 0 關注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號