0

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

一切正常,除了上传图片的功能。当我尝试上传时,它显示了这一点,

" Forbidden 您无权访问此服务器上的 /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!');
}
4

1 回答 1

1

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

如果您希望它们继续存在,您不应该直接在 Heroku 的文件系统上上传文件。Heroku 有一个临时文件系统。每个测功机都是一个独立的容器。每当您的应用程序重新启动时,都会启动一个新容器,这意味着存储在文件系统上的任何内容都将永久丢失。

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

于 2018-11-07T12:11:39.207 回答