我有一个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!');
}
答案 0 :(得分:1)
这本身并不能解决您的问题。但是稍后您将面对另一个问题。
如果您希望文件会一直存在,则不应直接在Heroku的文件系统上上传文件。 Heroku有一个ephemeral filesystem。每个测功机是一个独立的容器。每当您的应用程序重新启动时,就会启动一个新的容器,这意味着文件系统上存储的所有内容都会永久丢失。
您应该将文件上传到专用存储系统,例如Google Cloud或Amazon S3。 参见https://devcenter.heroku.com/articles/s3-upload-php