我正在尝试在表单注册表中上传图像,但是当我提交此表单时,我收到此错误“图像必须是图像。”。我已经将模型更改为接受所有图像扩展名,并尝试在我的表单上添加“enctype="multipart/form-data"”,但没有成功。
我怎么解决这个问题?我需要上传这张图片。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User;
use Illuminate\Foundation\Livros;
class Livro extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'livro',
'users_id',
'namel',
'autor',
'editora',
'categoria',
'classificação',
'descricao',
'image'=>'required|image|mimes:jpeg,jpg,png,bmp,gif,svg',
];
}
控制器
protected function validator(Request $request)
{
return Validator::make($request, [
'namel' => ['required', 'string', 'max:200'],
'autor' => ['required', 'string', 'email', 'max:200'],
'editora' => ['required', 'string', 'max:50'],
'categoria'=> ['required', 'string', 'min:50'],
'classificação'=> ['required', 'string', 'min:1','max:2'],
'descricao'=> ['required', 'string', 'min:200'],
'image'=> ['required'],
]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function create(StoreUpdateLivro $request)
{
$user = Auth::user()->id;
$data = $request->all();
if($request->file('image')->isValid()){
$image = $request->image->store('livros');
$data['image'] = $image;
}
Livro::create([
'users_id' => $user,
'namel' => $request['namel'],
'autor' => $request['autor'],
'editora' => $request['editora'],
'categoria'=> $request['categoria'],
'classificação'=>$request['classificação'] ,
'descricao'=>$request['descricao'],
'image'=>$request['image'],
]);
return view('livros/cadastro');
}
刀片
<form method="POST" enctype=”multipart/form-data” action="{{ url('/cadastro_livros') }}">
<div class="form-group row">
<label for="image" class="col-md-4 col-form-label text-md-right">{{ __('CAPA') }}</label>
<div class="col-md-6">
<input type="file" class="form-control @error('image') is-invalid @enderror" name="image" >
@error('image')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<br>
</div>
</div>
</form>
答案 0 :(得分:0)
您的 enctype=”multipart/form-data”
设置不正确,它使用了奇怪的 "
(双引号),看到它们类似于 ”
而不是 "
,所以也许您没有设置了 enctype
,因此没有发送文件...