Vue / Laravel:如何验证从前端上传的文件?

时间:2020-05-03 08:33:40

标签: laravel vue.js laravel-5

我的Vue应用程序中有一个图像上传器,可以上传多个文件。我想确保它们是图像并且具有一定的大小,如果没有,显然不要上传文件,并且让前端显示错误。现在,它在控制器中命中的路由如下所示:

  public class Lab3Class {

        public static void main(String[] args) {
            // TODO Auto-generated method stub

        int table = 1;

        while(table<10) {
             int i = 1;
             while(i<=10)
             {
                 System.out.println(table+ " * "+i+" = "+(table*i));
                 i++;
             }
            System.out.println("  ");
            table++;
        }

    }
    } 

下面的“我的表单请求”具有验证,但是我不知道如何在控制器中应用它。

UploadAssetsFormRequest

   public function uploadAssets(UploadAssetsFormRequest $request)
    {
        if ($request->hasFile('file')) {
            $files = $request->file('file');
            $stack = [];
            foreach ($files as $file) {
                $fileName = Storage::put('/check/', file_get_contents($file->getRealPath()), ['visibility' => 'public']);
                array_push($stack, $fileName);
            }
            return response()->json($stack);
        }
    }

3 个答案:

答案 0 :(得分:0)

您需要检查文件扩展名:

$extension = $file->extension();
$allowed_file_types = ['jpg','png','gif'];
if (in_array($extension, $allowed_file_types)){
//do upload
}else{
Continue;
}

对于文件大小,请检查this thread

答案 1 :(得分:0)

您可以使用laravel图片验证

$this->validate ($input, [
    'files.*.image' => 'image|max:200',
]):

注意:最大(大小)以千字节为单位

您还可以使用尺寸规则

$this->validate ($input, [
    'files.*.image' => 'dimensions:min_width=100,min_height=200'
]):

Laravel Image Validation

Laravel Image Dimensions Validation

答案 2 :(得分:0)

您可以在验证中设置以下规则-

 'file' => 'required|max:100|mimes:jpg,png,bmp' // 100kb, mimes must have image extensions