我似乎无法使用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
日志中什么也没有。我错过了什么。谢谢。
答案 0 :(得分:0)
您可以替换
$filename = $file . '.' . $ext;
使用
$filename = $request->image->getClientOriginalName();
答案 1 :(得分:0)
您可以使用dd()/ dd($ filename)函数检查$ filename的结果,看看是否是您期望的结果。如果不是,则可能是问题所在。 而且据我在官方文档(https://laravel.com/docs/5.8/filesystem#file-visibility)中所见,put()方法的使用示例中没有使用PHP本机file_get_contents(也请选中此选项)。