无法在Laravel中使用vue.js上传多张图片

问题描述

我想在laravel中上传多个图像,因为我正在使用以下代码,但出现错误:

消息:“调用成员函数getClientOriginalExtension() 字符串

formData.append('gallery_img[]',this.form.gallery_img); 
uploadGalleryImg(e){
              
                var files = e.target.files;
                if (!files.length)
                    return;

                for (var i = files.length - 1; i >= 0; i--) {
                    this.form.gallery_img.push(files[i]);
                }
            },

控制器:

 if (count(array($request->gallery_img))) {
        foreach ($request->gallery_img as $image) {
            $fileName = time().'.'.$image->getClientOriginalExtension();
            $image->move(public_path('img/gallery_img/'),$fileName);
        }
 }

enter image description here

解决方法

尝试使您的foreach像这样:

foreach ($request->gallery_img as $key => $image)

问题是$ image被认为是一个字符串,所以我认为这是关键,其值是实际的图像。 如果那不起作用,而您只想从文件名中获取扩展名,则可以将explode native php函数与“。”一起使用。计分器。

$explodedImage = explode(".",$image);
$extension = $explodedImage[count($explodedImage)-1]

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...