我似乎无法使用Laravel上传图像文件。我一直在找the photo failed to upload。
我的表单:
<form id="save_report_form" action="{{ route('report.add') }}" method="post" enctype="multipart/form-data">
<input type="file" name="image" class="upload-photo" id="image" accept="image/png,image/jpg" />
</form>我的控制器:
public function add(Request $request)
{
$this->validate($request, [
'image' => 'required|image|mimes:png,jpg',
]);
// Get all file details and store in public
$disk = Storage::disk('public');
$file = $request->file('image');
$ext = $file->getClientOriginalExtension();
$filename = $file . '.' . $ext;
$disk->put($filename, file_get_contents($file), 'public');
return redirect()->back();
}对于我的开发服务器,我已经将upload_max_filesize更改为20mb。
在哪里可以找到上传失败的原因?我在Laravel日志中没有得到任何信息。我错过了什么。谢谢。
发布于 2019-05-09 20:50:38
你能换掉
$filename = $file . '.' . $ext;使用
$filename = $request->image->getClientOriginalName();发布于 2019-05-09 21:02:22
您可以使用dd() /dd( $filename )函数检查$filename的结果,并查看结果是否符合预期。如果不是,可能就是问题所在。另外,就我在官方文档(https://laravel.com/docs/5.8/filesystem#file-visibility)中所看到的,put()方法的用法是没有php原生file_get_contents的示例(也请检查这一点)。
https://stackoverflow.com/questions/56058928
复制相似问题