php - 无法在 Laravel 8 中上传文件
问题描述
我无法通过表单上传任何文件。存储已链接。
HTML:
<form enctype="multipart/form-data" action="{{ route('home.profile.photo.update') }}" method="post">
@csrf
@method('PUT')
<input type="file" name="image" id="image">
<input type="submit">
</form>
PHP.ini:
[PHP]
post_max_size = 100M
upload_max_filesize = 100M
variables_order = EGPCS
路线:
Route::put('/home/profile/photo', [App\Http\Controllers\HomeController::class, 'updateProfileImage'])->name('home.profile.photo.update');
HomeController updateProfileImage():
public function updateProfileImage(Request $request){
dd($request->input());
$request->validate(
[
'image' => 'required',
]
);
$result = Auth::user()->addMedia($request->input('image'))->toMediaCollection('user-images');
return $result;
}
DD输出
array:2 [▼
"_token" => "nLJx2jVbBCfCJUAsIPS7LJGVv7Rpcb72yPXqMO7v"
"_method" => "PUT"
]
使用 enctype="application/x-www-form-urlencoded" DD 输出:
array:3 [▼
"_token" => "nLJx2jVbBCfCJUAsIPS7LJGVv7Rpcb72yPXqMO7v"
"_method" => "PUT"
"file" => "IMG_5626.jpg"
]
但是,如果我尝试存储文件,我会收到以下错误:
Spatie\MediaLibrary\MediaCollections\Exceptions\FileDoesNotExist
File `IMG_5626.jpg` does not exist
这让我发疯,似乎一切都设置正确。有任何想法吗?
解决方案
您需要访问上传的“文件”部分。改变
$request->input('image')
到
$request->file('image')
推荐阅读
- rest - 如何在azuracast中通过api创建角色
- jquery - 第二次点击按钮运行jquery函数(不是第一次)
- python - 有没有办法传递一个 lambda 函数来引用字典理解中的数据框?
- excel - 为什么我的索引匹配公式与嵌套的间接引用返回为#REF ... perrrrplexed
- google-cloud-platform - `gsutil equivalent` missing in GCP User Interface
- python - 将具有列表形式值的数据框列转换为同一列中的字符串
- c++ - 如何编译 Quake 2 源代码?
- javascript - 反应计时器中的访问时间
- r - 从 R 中的列表中获取行名
- go - 如何在不同的测试文件中共享项目