如何解决使用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 举报,一经查实,本站将立刻删除。