使用file_put_contentsLaravel在PHP中进行文件编辑的问题

如何解决使用file_put_contentsLaravel在PHP中进行文件编辑的问题

大家下午好,我遇到了一个不可思议的问题,我希望别人能帮我找出导致此问题的原因。 为了提供一些背景信息,我允许用户在产品上存储图像数组,并在使用laravel-stapler软件包存储图像之后,以以下方式对其进行配置:

 public function __construct(array $attributes = [])
{
    parent::__construct($attributes);

    $this->hasAttachedFile('image',[
        'styles' => [
            'thumbnail' => '500x500#','large' => '800x800#'
        ],'url' => '/media/image/:id/:style/:filename','default_url' => '/img/category-placeholder-greyscale.jpg','convert_options' => [
            'jpeg_quality' => 60
        ]
    ]);
}

图像保存在三个文件夹中:
../图像路径/原始文件/文件
../图像路径/缩略图/文件
../图像路径/大文件

保存这些图像后,我使用croppie.js对其进行旋转和编辑。用户编辑并裁剪它们并将其提交后,图像将作为base64发送到控制器,并且在下面将控制器简化为仅相关部分:

$imageData = $request->get('imagebase64');

list(,$imageData) = explode(';',$imageData);
list(,$imageData) = explode(',',$imageData);
$imageData = base64_decode($imageData);
// $image is loaded up through dependency injection
$path = public_path('/path' . '/large/' . $image->image_file_name);
$path2 = public_path('/path' . '/original/' . $image->image_file_name);


file_put_contents($path,$imageData);
file_put_contents($path2,$imageData);

这可以在我的本地计算机上正常工作,该图像保存在两个文件夹中,并且我得到了一个新的裁剪和编辑的图像,但是在我的服务器上这不起作用,第一个 file_put_contents 不起作用并且不会将新图像存储到 / large 文件夹中,但是第二个file_put_contents可以将新图像存储到 / original 文件夹中。

我不确定为什么会这样,希望您能给我任何帮助。我也不认为这是由于权限引起的,因为我为图像文件夹赋予了正确的权限,但是我不确定。该代码不会崩溃,它只会在不保存第一个图像的情况下执行

解决方法

您可能需要编辑.htaccess文件才能授予这些文件的权限

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?