【发布时间】:2021-07-18 22:45:53
【问题描述】:
我在尝试上传图像文件时遇到了很多天。我无法使用以下代码上传多个图像文件:
控制器
if ($request->TotalImages > 0) {
for ($x = 0; $x < $request->TotalImages; $x++) {
if ($request->hasFile('images' . $x)) {
$file = $request->file('images' . $x);
$path = $file->store('public/product_images/');
$name = $file->getClientOriginalName();
$insert[$x]['name'] = $name;
$insert[$x]['path'] = $path;
}
}
}
$productId = DB::table('products')->insertGetId(
[
'product_photo' => $insert
]
);
查看
<input id="images" name="images[]" type="file" multiple
class="form-control {{ $errors->first('images') ? 'is-invalid' : '' }}"
data-iconName="fa fa-upload" data-overwrite-initial="false">
<br>
var formData = new FormData();
let TotalImages = $('#images')[0].files.length; //Total Images
let images = $('#images')[0];
for (let i = 0; i < TotalImages; i++) {
formData.append('images' + i, images.files[i]);
}
formData.append('TotalImages', TotalImages);
$.ajax({
url: "{{ route('products.store') }}",
method: 'post',
enctype: 'multipart/form-data',
cache: false,
data: formData,
contentType: false,
processData: false,
dataType: 'JSON',
async: true,
headers: {
'Content-Type': undefined,
},
xhr: function() {
myXhr = $.ajaxSettings.xhr();
return myXhr;
},
}); //ajax
它总是显示错误:
图片字段是必填项。
但是单次上传就可以了!
【问题讨论】:
标签: jquery ajax laravel laravel-5