laravel 多檔案上傳

Developer發表於2020-10-12

檔案上傳

前端程式碼:

<form action="{{route('user.document.uploads')}}" method="post" enctype="multipart/form-data">
  @csrf
  批次上傳
  <input type="file" multiple class="form-control" name="files[]" title="批次上傳" />
 <button type="submit" class="btn btn-dark">提交</button>
</form>

路由:

Route::post('user/up','AccountController@uploads')->name('user.document.uploads');

後端程式:

public function uploads(Request  $request)
    {
        $files = $request->file('files');
        if($request->hasFile('files'))
        {
            foreach ($files as $file) {
                $path = $file->store('files');
                $file = [
                    'path'    => 'storage/'.$path,
                    'file_name'    =>  $request->file('file')->getClientOriginalName(),
                    'extension'    =>  $file->extension(),
                    'size'    =>  $file->getSize(),
                    'user_id'   => $request->user()->id,
                    'ip_address'    => $request->getClientIp(),
                    'status'    => '0'
                ];
                $file = File::create($file);
            }
        }
        return response('files')->with('status','檔案上傳成功!');
    }

以上程式碼大概的實現了檔案上傳, 你可以用foreach裡面的程式碼單獨拿出來做成單檔案上傳,當然這裡需要修改前端,如:

<form action="{{route('user.document.uploads')}}" method="post">
  @csrf
  批次上傳
  <input type="file" class="form-control" name="file" title="批次上傳" />
 <button type="submit" class="btn btn-dark">提交</button>
</form>

樣視沒那麼好看,程式碼為主, 大概意思就是這樣的。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章