这在我的本地机器上运行得很好,图像保存在两个文件夹中,我会得到一个新的裁剪和编辑的图像,但在我的服务器上,这不起作用,第一个file_put_contents不起作用并且不会将新图像存储到/legal文件夹中,但第二个file_put-contents起作用并且将新图像保存到原始中。
我不知道为什么会发生这种情况,如果你能给我任何帮助,我将不胜感激。我也不认为这是由于权限的原因,因为我给了图像文件夹正确的权限,但我不能确定。代码不会崩溃,而且它只是在不保存第一个图像的情况下执行
大家下午好,我遇到了一个我无法指出的奇怪问题,我希望有人能帮我找出这个问题的原因。为了提供一些上下文,我允许用户在产品上存储一组图像,并在使用laravel订书机包存储后,按以下方式配置:
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不起作用并且不会将新图像存储到/legal文件夹中,但第二个file_put-contents起作用并且将新图像保存到原始中。
我不知道为什么会发生这种情况,如果你能给我任何帮助,我将不胜感激。我也不认为这是由于权限的原因,因为我给了图像文件夹正确的权限,但我不能确定。代码不会崩溃,而且它只是在不保存第一个图像的情况下执行
您可能必须编辑.htaccess文件才能授予这些文件权限