Laravel 5.8图片无法上传

时间:2019-05-09 11:57:53

标签: laravel file-upload

我似乎无法使用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日志中什么也没有。我错过了什么。谢谢。

2 个答案:

答案 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(也请选中此选项)。