我试图在 Laravel 8 中上传图片,但对于大文件会失败。
我的控制器中有以下代码:
public function uploadTemporaryFile(Request $request)
{
$request->validate([
'image' => 'required|mimes:png,jpeg,jpg',
])
$file = $request->file('image');
//do more stuff here
}
以上适用于较小的图像文件,但大型图像文件8MB验证失败。经过一些故障排除和记录大型文件上的$request后,我发现问题出在此处。
var_dump($request);
array (
'image' =>
Illuminate\Http\UploadedFile::__set_state(array(
'test' => false,
'originalName' => 'IMG_20201203_072650.jpg',
'mimeType' => 'application/octet-stream',
'error' => 1,
'hashName' => NULL,
)),
)
根据上述大图像文件,MIME类型似乎从
image/jpeg
变为application/octet-stream
。 上传小图像所使用的相同代码被用来上传大图像文件。由于应用程序/八位流,现在$request->file("image")
为空。当上传大图像文件时,如何获取已上传的文件以进行保存?或者我缺少了什么东西。我还将
upload_max_filesize
和post_max_size
都调整为100M。