将laravel中的文件更新并下载为zip文件

问题描述

我有 10 个用于上传文件的输入 我希望他们保存为 1 个文件 zip 并下载文件 zip

   public function store(Request $request)
    {

        $clients = $request->all();
        for($i=1 ; $i<10 ; $i++){
            if ($request->hasFile('document'.$i)) {
                $clients['document'.$i] = $request['document'.$i]->getClientOriginalName();
               $request['document'.$i]->storeAs('documents'.'/'. $clients['phone'],$clients['document'.$i]);
            }
        }

        Submite::create($clients);
        return redirect()->route('submited.index');
    }


    public function download($id)
    {
        $clients = Submite::where('id',$id)->firstOrFail();
        $pathToFile = storage_path('app/documents/'.$clients['phone']. '/' .$clients->document1);
        return response()->download($pathToFile);
    }

在这代码中,我只能上传存储中的文件 我该怎么办?

解决方法

首先,您最好使用 foreach 而不是 for

事情是这样的:

对于商店:

  1. 获取您的所有文件。

  2. 将它们转换为 Zip 文件。

  3. 将 Zip 文件存储在磁盘上。

  4. 将路径存储在数据库中。

下载:

  • 只需获取文件路径并做出下载响应即可。