【发布时间】:2021-03-09 06:01:37
【问题描述】:
我尝试制作一个文件上传器,它应该能够上传 mimes,即:.jpg, .jpeg, .pdf, .bmp, .png, .doc & .docx。我还提出了一个请求规则如下:
StoreFileRequest.php
public function rules()
{
'files.*' => [
'mimes:jpg,jpeg,pdf,bmp,png,doc,docx',
'max:20000',
],
}
控制器
use App\Http\Requests\Backend\StoreFileRequest;
public function store(StoreFileRequest $request)
{
if($request->hasFile('files'))
{
foreach ($files as $file) {
//file Mime type
$fileMimeType=$file->getClientMimeType();
//change filename to laravel generated name using above extention
$filename=$file->hashName();
//upload file
$path=$file->storeAs('public/user-existing-health-reports/'.auth()->user()->uuid,$filename);
}
}
}
刀片
{!! Form::file('files[]',
array('class' => 'form-control btn btn-file ',
'accept'=>'.jpg, .jpeg, .pdf, .bmp, .png, .doc, .docx',
'multiple',
'required',
)) !!}
尽管有上述验证规则,假设我尝试上传 .zip 和 .rar 文件,这些文件位于 1GB。该文件首先被上传,这需要相当长的时间,然后在验证后抛出错误。
我的问题:我需要在用户单击提交按钮时验证文件扩展名和大小,然后再上传文件以通过验证器进行验证。
【问题讨论】:
标签: php laravel validation file-upload laravel-8