簡體   English   中英

使用 file_put_contents (Laravel) 在 PHP 中編輯文件的問題

[英]Issue with file edit in PHP using file_put_contents (Laravel)

大家下午好,我遇到了一個我無法解決的奇怪問題,我希望有人能幫助我找出導致此問題的原因。 為了提供一些上下文,我允許用戶在產品上存儲一組圖像,然后使用 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 文件以授予這些文件的權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM