php - 如何使用 Laravel 存储图像?
问题描述
从我的表单中,我尝试为用户的个人资料保存图像,我真的不明白为什么会收到以下验证错误。
在表格中我指出以下内容:(enctype,类型文件的输入)
<div class="row">
{!! Form::open(['route' => 'admin.users.store', 'method' => 'POST', 'enctype'=>'multipart/form-data']) !!}
{{ csrf_field() }}
<div class="col-md-4">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Perfil</h3>
</div>
<div class="box-body">
<div class="form-group">
{!! Form::label('status_id', 'Estado') !!}
{!! Form::select('status_id', $status, null, ['class' => 'form-control select2', 'id' => 'status_id', 'style' => 'width:100%;']) !!}
</div>
<div class="form-group">
<label for="user_photo">Imagen de Perfil</label>
<input type="file" id="user_photo" name="user_photo">
</div>
</div>
</div>
</div>
{!! Form::close() !!}
</div>
在我的控制器中的store 方法中,我尝试将图像与其他用户字段一起存储,如下所示:
public function store(Request $request)
{
// Transacciones
DB::beginTransaction();
// Validar el formulario
$data = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'user_photo' => 'required|file',
]);
// Generar una contraseña
$data['password'] = str_random(8);
// Creamos el usuario
dd($request->all());
if (request()->hasFile('user_photo')) {
$file = request()->file('user_photo')->store('public');
$user = new User;
$user->name = $request->get('name');
$user->surname = $request->get('surname');
$user->nickname = $request->get('nickname');
$user->email = $request->get('email');
$user->password = $request->get('password');
$user->gender = $request->get('gender');
$user->address = $request->get('address');
$user->postcode = $request->get('postcode');
$user->city = $request->get('city');
$user->province = $request->get('province');
$user->phone = $request->get('phone');
$user->user_photo = $file;
$user->save();
// Enviamos el email
UserWasCreated::dispatch($user, $data['password']);
}else{
return 'no se recibio nada';
}
}
在我的完整表单中,完成用户个人资料并选择图像的必要字段,如果我单击创建按钮,如您所见,当我已经选择图像时,它会引发必填字段验证错误。 如果我评论 user: photo 作为必填字段,请跳过方法 esle: nothing was received。
如果它们已修复,请使用 ** dd ($ request-> all ()); ** 我的方法,这就是结果。
array:15 [
"_token" => "gRxLpp5fSjPo8aE0XhKCPYJzAlUuqoV6hjhxkvv7"
"name" => "aa"
"surname" => null
"gender" => null
"email" => "ale@gmail.com"
"nickname" => null
"birthdate" => null
"password" => null
"password_confirmation" => null
"status_id" => "1"
"phone" => null
"address" => null
"postcode" => null
"city" => null
"province" => null
]
缺少 user_photo 字段。
我不明白发生了什么?. 我需要有人帮我解决几天前我正在处理的这个问题 从我的存储库克隆的项目是否与它有关?它不会发生,因为我的 store 方法不起作用。
解决方案
推荐阅读
- python - 如何将解析的参数转换为可以在 if 语句中使用的变量?
- python - 计算概率密度均值python
- c# - Perforce API (P4API.NET): P4Exception: Too many try to get lock p4tickets.txt.lck
- python - 如何为 CNN 训练准备通道图像?
- android-studio - 如何为在Android中分配了多个角色的用户实现登录?
- javascript - 如何创建离线工作的网络应用程序?(例如,bulkresizephoto)
- javascript - 直接从相机上传图像到谷歌云存储
- java - 双向 jpa 休眠关系 @OneToMany @ManyToOne 失败,因为未存储父 ID
- bash - 签名错误阻止上传到 S3 存储桶
- python-3.x - TensorFlow 1.15 中的 Autograph 在条件语句中给出 TypeError,在一个分支中赋值