我正在尝试将图像数据保存到文件夹中。它在我的localhost上工作正常,但是当我将它移动到heroku时它给了我这个错误
NotWritableException
Can't write image data to path (https://arcane-peak-
34431.herokuapp.com/public/images/categories/1527155055.jpg)
这是我的代码。
$image = $request->file('image');
$imagename = $image->getClientOriginalExtension();
$imagename = time().'.'.$imagename;
$destinationPath = URL::to('public/images/restaurants');
$img = Image::make($image->getRealPath());
$img->resize(100, 100, function ($constraint) {
$constraint->aspectRatio();
})->save($destinationPath.'/'.$imagename);
$destinationPath = URL::to('public/images/restaurants');
$image->move($destinationPath, $imagename);
我做错了什么?而且在我的本地机器上,上传的图像正在保存,但我想要保存已调整大小的图像。任何帮助都将是一个救生员
答案 0 :(得分:1)
更大的问题是即使你让你的图像保存它也会消失。 Heroku使用ephemeral filesystem(粗体添加):
每个dyno都有自己的短暂文件系统,并带有最近部署代码的全新副本。在dyno的生命周期中,其运行进程可以将文件系统用作临时暂存器,但是任何其他dyno中的进程都不会看到所写的文件,并且在dyno停止或重新启动时,任何写入的文件都将被丢弃。例如,每次因应用程序部署而更换dyno时都会发生这种情况,并且大约每天一次作为正常dyno管理的一部分。
Heroku recommends使用Amazon S3等第三方服务存储用户上传。