【问题标题】:laravel 5 cant save imagelaravel 5 无法保存图片
【发布时间】:2015-07-16 09:33:34
【问题描述】:

尝试在我的服务器上保存图像时,在我的 laravel 5 项目中使用干预图像类,使用以下代码:

$pathFull = public_path('images/original/brand/' . $filename);
$img = Image::make($image->getRealPath());
$img->encode('jpg')->save($pathFull);

我得到错误:

NotWritableException in Image.php line 138:
Can't write image data to path  
(/var/www/mydomain.com/public/images/original/brand/nanan.jpg)

所以我改变了文件夹(已经存在)的权限:

sudo chmod -R 775 /var/www/mydomain.com/public/images

我检查了它们的权限是 775,以便命令有效。我在本地尝试过(xampp),它工作得很好,而且干燥的路径也很好。仅当我不使用 777 时,我才会不断收到此错误,但这很危险。

我还能尝试什么来保持服务器保存而不使用 777?

【问题讨论】:

  • @maytham 图片不需要保护,为什么我要为图片使用路由?
  • @mayham 但我需要在公共场合使用 775 创建不必要的路线应该是非常安全的。
  • 如果您认为这是可行的方法,那很好,伙计,这只是一个建议。
  • @maytham 感谢我可能会使用它的建议,但它不能解释为什么我现在不能写。我真的很想找出我做错了什么,这样我以后就可以避免它了
  • 您解决了这个问题了吗?我已经检查了你的代码,如果你的公用文件夹在你的问题发生时有写权限,它应该可以正常工作,所以我不怀疑你的代码,我只怀疑你的系统/文件夹结构中有写权限的东西。

标签: laravel-5 intervention


【解决方案1】:

也许路径不一样。一探究竟。查看原始目录?

$pathFull = public_path('images/brand/thumb/' . $filename);

Can't write image data to path  
(/var/www/mydomain.com/public/images/original/brand/nanan.jpg)

sudo chmod -R 775 /var/www/mydomain.com/public/images/original/brand

我最近做了一个像你这样的方法。这对我来说可以。这里是:

$image = Input::file('image');
$filename = Input::file('image')->getClientOriginalName();
$path = public_path('images/' . Auth::user()->email . '/' . $filename);
$img = Image::make($image->getRealPath());
$img->encode('jpg')->save($path);

【讨论】:

  • 抱歉图片/品牌/拇指/错误(复制粘贴错误)。我没有看到代码的第二部分有太大区别,还是我忽略了什么?
  • ;) 不,您没有忽略...我试图模仿您的代码并在我的应用程序中对其进行测试。对我来说它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 2020-07-13
  • 1970-01-01
相关资源
最近更新 更多