Laravel-您无权访问此服务器上的/ images /

时间:2018-11-07 10:13:31

标签: laravel heroku

我有一个Laravel项目上传到Heroku。

上传图像的功能外,其他所有功能均正常。 当我尝试上传时,它会显示此内容,

禁止 您无权访问此服务器上的/ images/。

这是我的store()函数的外观,

public function store(Request $request)
{
    $this->validate($request, [
       'filename' => 'required',
       'filename.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
    ]);

    if ($request->hasFile('filename')) {
        foreach ($request->file('filename') as $image) {
            $name = $image->getClientOriginalName();
            $image->move(public_path() . '/images/', $name);
            $data[] = $name;
        }
    }

    return back()->with('success', 'Images uploaded successfully!');
}

1 个答案:

答案 0 :(得分:1)

这本身并不能解决您的问题。但是稍后您将面对另一个问题。

如果您希望文件会一直存在,则不应直接在Heroku的文件系统上上传文件。 Heroku有一个ephemeral filesystem。每个测功机是一个独立的容器。每当您的应用程序重新启动时,就会启动一个新的容器,这意味着文件系统上存储的所有内容都会永久丢失。

您应该将文件上传到专用存储系统,例如Google Cloud或Amazon S3。 参见https://devcenter.heroku.com/articles/s3-upload-php