Laravel 8,如何一次上传多张图片
Laravel 8, how to upload more than one image at a time
我想通过 in Laravel 8 一次上传多张图片到我的 SQL 数据库,但我做不到。我只成功上传了一个,但是当我尝试上传更多时,我失败了。
我的数据库
Imagenes
id
nombre
id_coche
01
name.jpg
0004
...
...
...
我的代码
Blade 与表格
@foreach ($Vehiculo as $obj) /*this is to take the Car ID*/
<form method="POST" action="{{ route('añadirImagen')}}" enctype="multipart/form-data" >
@csrf
<div class="form-row">
<div class="form-group col-md-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">ID</span>
</div>
<input type="text" class="form-control" name="id_coche" value="{{$obj->id}}" style="background: white" required readonly>
</div>
</div>
<div class="col-md-6">
<input type="file" class="form-control" name="imagen" required multiple/>
</div>
<div class="form-group col-md-3">
<button type="submit" class="btn btn-success">AÑADIR IMAGENES</button>
</div>
</div>
</form>
@endforeach
控制器
"只上传一张图片"
public function añadirImagen(Request $request){
$validated = $request->validate([
'id_coche' => 'required',
'nombre.*' => 'mimes:image'
]);
$data = $request->input();
$id_coche = $data['id_coche'];
$Imagenes= new Imagenes;
$Imagenes->id_coche = $id_coche;
if($request->file("imagen")!=null){
$nombre = $request->file('imagen');
$nombreFoto = $nombre->getClientOriginalName();
$nombre->move('img/Coches/', $nombreFoto);
$Imagenes->nombre = $nombreFoto;
}
$Imagenes->save();
return redirect()->back()->with('error','Se han añadido las imagenes correctamente.');
}
}
“我尝试上传多个”
public function añadirImagen(Request $request){
$validated = $request->validate([
'id_coche' => 'required',
'imagen.*' => 'mimes:image'
]);
$data = $request->input();
$id_coche = $data['id_coche'];
$Imagenes= new Imagenes;
$Imagenes->id_coche = $id_coche;
if($request->hasfile("imagen")){
$nombre_img = $request->file('imagen');
foreach($nombre_img as $nombre) {
$nombreFoto = $nombre->getClientOriginalName();
$nombre->move('img/Coches/', $nombreFoto);
$Imagenes->nombre = $nombreFoto;
}
}
$Imagenes->save();
执行此操作时,它会在数据库中添加一行,其中包含正确的 id_coche,Auto_Increment 可以很好地处理 ID,但名称仍为 NULL。
谢谢。
您目前拥有:
<input type="file" class="form-control" name="imagen" required multiple/>
它需要是:
<input type="file" class="form-control" name="imagen[]" required/>
不需要多个属性。
然后你可以在你的控制器中做:
if($request->hasfile('imagen')) {
foreach($request->file('imagen') as $file)
{
...
}
}
我想通过 in Laravel 8 一次上传多张图片到我的 SQL 数据库,但我做不到。我只成功上传了一个,但是当我尝试上传更多时,我失败了。
我的数据库
Imagenes
id | nombre | id_coche |
---|---|---|
01 | name.jpg | 0004 |
... | ... | ... |
我的代码
Blade 与表格
@foreach ($Vehiculo as $obj) /*this is to take the Car ID*/
<form method="POST" action="{{ route('añadirImagen')}}" enctype="multipart/form-data" >
@csrf
<div class="form-row">
<div class="form-group col-md-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">ID</span>
</div>
<input type="text" class="form-control" name="id_coche" value="{{$obj->id}}" style="background: white" required readonly>
</div>
</div>
<div class="col-md-6">
<input type="file" class="form-control" name="imagen" required multiple/>
</div>
<div class="form-group col-md-3">
<button type="submit" class="btn btn-success">AÑADIR IMAGENES</button>
</div>
</div>
</form>
@endforeach
控制器
"只上传一张图片"
public function añadirImagen(Request $request){
$validated = $request->validate([
'id_coche' => 'required',
'nombre.*' => 'mimes:image'
]);
$data = $request->input();
$id_coche = $data['id_coche'];
$Imagenes= new Imagenes;
$Imagenes->id_coche = $id_coche;
if($request->file("imagen")!=null){
$nombre = $request->file('imagen');
$nombreFoto = $nombre->getClientOriginalName();
$nombre->move('img/Coches/', $nombreFoto);
$Imagenes->nombre = $nombreFoto;
}
$Imagenes->save();
return redirect()->back()->with('error','Se han añadido las imagenes correctamente.');
}
}
“我尝试上传多个”
public function añadirImagen(Request $request){
$validated = $request->validate([
'id_coche' => 'required',
'imagen.*' => 'mimes:image'
]);
$data = $request->input();
$id_coche = $data['id_coche'];
$Imagenes= new Imagenes;
$Imagenes->id_coche = $id_coche;
if($request->hasfile("imagen")){
$nombre_img = $request->file('imagen');
foreach($nombre_img as $nombre) {
$nombreFoto = $nombre->getClientOriginalName();
$nombre->move('img/Coches/', $nombreFoto);
$Imagenes->nombre = $nombreFoto;
}
}
$Imagenes->save();
执行此操作时,它会在数据库中添加一行,其中包含正确的 id_coche,Auto_Increment 可以很好地处理 ID,但名称仍为 NULL。
谢谢。
您目前拥有:
<input type="file" class="form-control" name="imagen" required multiple/>
它需要是:
<input type="file" class="form-control" name="imagen[]" required/>
不需要多个属性。 然后你可以在你的控制器中做:
if($request->hasfile('imagen')) {
foreach($request->file('imagen') as $file)
{
...
}
}