laravel - 在 null enctype="multipart/form-data" 上调用成员函数 store()
问题描述
我正在做大学作业,但上传图片时遇到问题。
即使,我已经使用 enctype="multipart/form-data" 但仍然无法上传数据
如果我包含图像,结果将产生一个空白页,但如果不是,qrud 运行顺利
谁能指出我正确的方向?
谢谢。
控制器内部功能
public function update(ProfilEditRequest $request) {
$data = $request->all();
if (isset($data['avatar'])) {
$isImg = explode(".", $data['avatar']);
if ($isImg[sizeof($isImg)-1] == "png" ||
$isImg[sizeof($isImg)-1] == "jpg" ||
$isImg[sizeof($isImg)-1] == "jpeg" ||
$isImg[sizeof($isImg)-1] == "svg" ) {
$path = $request->file($data['avatar'])->store('/public/assets/profil-img/'.Auth::user()->id.'/');
$itemss =DB::table('users')
->where('id', Auth::user()->id)
->update([
'email' => $data['email'],
'name' => $data['name'],
'img_url' => $data['avatar']
]);
}else {
return redirect('/profile/');
}
$item = user::findOrFail(Auth::user()->id);
$item->update($data);
return redirect('/');
}
$itemss =DB::table('users')
->where('id', Auth::user()->id)
->update([
'email' => $data['email'],
'name' => $data['name']
]);
return redirect('/sell/');
}
这是我的html表单
<form method="GET" action="{{url('profil/update/')}}"
enctype="multipart/form-data" >
@csrf
<!--input type="number" value=""><br>-->
<label for="email" >email</label><br>
<input type="email" size="60" name="email" value="{{Auth::user()->email}}" required> <br><br>
<label for="name">nama</label><br>
<input type="text" size="60" name="name" min="1" value="{{Auth::user()->name}}" required><br><br>
<label for="avatar">Select new profil picture</label>
<input type="file"
name="avatar" id="avatar" width="48" height="48"> <br><br><br>
<input class="btn btn-primary"type="submit">
<a href="{{url('/profil/')}}" class="btn btn-secondary">Cancel</a>
解决方案
为了调试这种情况,您必须在每个步骤中监视代码以查看错误的确切位置,因此您可以通过类似的方式获取每个代码行的结果dd($whatever_want_to see)
如果你被运行$request->file($data['avatar'])
会看到它的价值并且知道这是我的错
正如评论中提到的那样尝试类似
public function update(Request $request) {
$data = $request->all();
if (isset($request->file('avatar'))) {
$isImg = explode(".", $data['avatar']);
if ($isImg[sizeof($isImg)-1] == "png" ||
$isImg[sizeof($isImg)-1] == "jpg" ||
$isImg[sizeof($isImg)-1] == "jpeg" ||
$isImg[sizeof($isImg)-1] == "svg" ) {
$path = $request->file('avatar')->store('/public/assets/profil-img/'.Auth::user()->id.'/');
//rest of your code
推荐阅读
- sql - 单个字段是否包含来自不同表的多个外键关系 [SQL]
- python - Python 正则表达式可以在线工作,但不能在代码中使用
- linux - 错误:环境中未设置 XDG_RUNTIME_DIR
- python - 如何在不保存的情况下将 DataFrame 转换为 xlsx 文件?
- ios - 可调整大小的 tableView 单元格,其中包含 tableView
- python - 如何在 python 中为 Azure 服务总线自动转发?
- android - 从片段调用 ActivityMain 中的 AsyncTask 方法
- php - 在 null 上调用成员函数 get_results()
- python-3.x - Selenium 无法获取 iframe > iframe > img 内的图像链接
- ios - 具有通用(可选)用户默认值的属性包装器