上传多张图片时出现错误 array to string
。这是我的刀片代码:
<form role="form" action="{{ url('admin/product') }}" method="POST" enctype="multipart/form-data">
<input type="file" class="form-control" placeholder="Image Gallery" name="image_gallery[]" required="required" multiple>
</form>
我已经将 multiple
放在输入标签上。
这是控制器代码。注释代码image Gallery
是上传图库图片的代码:
public function store(Request $request)
{
$this->validate($request, [
'photo' => 'required|image|mimes:png,jpg,jpeg|max:1000',
'slug' => 'required',
'name' => 'required',
'description' => 'required',
'stock' => 'required|numeric',
'price' => 'required|numeric',
'sale_price' => 'required|numeric',
'brand_id' =>'integer',
'manufacture_id' =>'integer',
'genre_id' => 'integer',
'gudang_id' => 'integer',
'weight' => 'integer',
'status' => 'required',
'date_arrival' => 'required_if:status,==,"preorder',
'is_protector' => 'nullable',
'type' => 'nullable',
'protector_id' =>'required_if:is_protector,==,"1"',
'image_gallery' => 'required|image|mimes:png,jpg,jpeg|max:1000',
]);
$formInput = $request->except(['_token']);
$file = $request->file('photo');
$filename = $file->getClientOriginalName();
$request->file('photo')->move('static/dist/img/', $filename);
$formInput['photo'] = 'static/dist/img/'.$filename;
//image Gallery
if ($request->hasFile('image_gallery')) {
foreach ($request->file('image_gallery') as $file_gallery) {
$name = $file_gallery->getClientOriginalName();
$file_gallery->move('static/dist/img/', $name);
$formInput['image_gallery'] = 'static/dist/img/'.$name;
}
}
if ($request->status == "preorder") {
$formInput['date_arrival'] = $request->date_arrival;
}
$formInput['user_id'] = Auth::user()->id;
$new_product = Product::create($formInput);
if ($new_product) {
Alert::success('', 'Product Berhasil di Tambahkan');
return redirect('admin/product');
}
}
答案 0 :(得分:0)
我不确定您的问题是什么,但您的代码仅节省了 1 个 image_gallery
:
//image Gallery
if ($request->hasFile('image_gallery')) {
foreach ($request->file('image_gallery') as $file_gallery) {
$name = $file_gallery->getClientOriginalName();
$file_gallery->move('static/dist/img/', $name);
$formInput['image_gallery'] = 'static/dist/img/'.$name;
}
}
当您在 $formInput['image_gallery'] = 'static/dist/img/'.$name;
中执行 foreach
时,您只保存了最后一张图片,而不是存储“多个”图片...