0

我在使用 voyager BREAD System 上传图片时遇到了问题。如果我使用 BREAD 删除或更新图像,则旧图像不会被替换或删除。它仍然在存储目录中。我正在使用最新版本的 voyager 和 laravel 5.5。这个问题有什么解决办法吗?提前谢谢您。</p>

4

2 回答 2

0

嘿,请检查您项目vendor/tcg/voyager/src/http/controllers/VoyagerBreadController.php目录中的以下文件

并检查这个

public function deleteBreadImages($data, $rows) {...}

函数在第 403 行。

在这个函数中找到$this->deleteFileIfExists($data->{$row->field});使它取消注释并检查。

我希望这对你有帮助吗

于 2017-12-22T10:52:33.447 回答
0

Laravel Voyager 1.2类文件中public function deleteBreadImages($data, $rows) {...}不再存在

vendor/tcg/voyager/src/http/controllers/VoyagerBreadController.php

在谷歌搜索同一问题两天后,我找到了硬解……
在我的情况下,图像字段名称是img,型号名称是公司
代码在 Model BREAD更新时执行

适用于航海者 1.2 希望它有所帮助))

use Storage;

class Company extends Model
{
    public static function boot()
    {
        parent::boot();

        static::updating(function($model)
        {   
            // Check if Old File Exists
            $oldFileExists = Storage::disk('public')->exists($model->original['img']);

            // If Old File Exists DELETE it, else Continue Adding New Image
            if($oldFileExists)
            {
                //Get File Extension:: .jpg .png .gif
                $fileExt = substr(strrchr($model->original['img'], "."), 0);

                //If File is not .GIF
                if($fileExt != '.gif'){
                    // Delete Old Non-GIF Image
                    Storage::disk('public')->delete($model->original['img']);
                }

                // Find .gif , -static.gif Old Images And Delete
                else{

                    // filename-static.gif
                    $staticOld = str_replace($fileExt,"-static".$fileExt,$model->original['img']);
                    // Delete Old Image.gif
                    Storage::disk('public')->delete($model->original['img']);
                    // Delete Old Image-static .gif if Exists
                    if($staticOld) Storage::disk('public')->delete($staticOld);

                }
            }
        });
    }
}
于 2019-09-27T16:53:50.950 回答