Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 17.08.2016 16:26:35

SleepingOwl загрузка и удаление яайлов

1)
Как поменять путь загрузки файлов. Речь не идет о постоянном пути. А хочется для каждого пункта меню свой путь сохранения файлов. Новости пускай грузят изображения в папку news / контакты в contact и так далее

Пробовал так

public function onEdit($id)
    {
        return AdminForm::panel()
            ->addHeader([
                AdminFormElement::text('title', 'Title')->required(),
            ])
            ->addBody([
                AdminFormElement::date('date', 'Date')->required()->setFormat('d.m.Y'),
                AdminFormElement::checkbox('published', 'Published'),
                AdminFormElement::wysiwyg('page', 'Page', 'tinymce'),
                AdminFormElement::image('photo', 'Photo')->setUploadPath(function() {
                    return 'news';

                }),
            ]);
    }

не сработало


2)
Сейчас скажем при загрузке изображения к одной новости картинка загрузится в папку. А если я зашел и решил поменять картинку. Новый файл загружается а старый не удаляется. Как сделать так чтобы при обновлении картинки - старый файл удалялся. Иначе потом будет просто свалка из файлов которые и не используются даже.

Не в сети

#2 01.09.2016 01:20:01

iy_expert
Откуда: Ukraine. Rivne
Сообщений: 19

Re: SleepingOwl загрузка и удаление яайлов

1. Я так делаю. Не уверен что это лучший вариант

public function setImageAttribute($value)
    {
        if (is_file($value) AND strpos($value, '/uploads/') !== false) {
            $imgPath = str_replace('/uploads/', '/news/', $value);

            Image::make($value)->resize(null, 1000, function ($constraint) {
                $constraint->aspectRatio();
                $constraint->upsize();
            })->save($imgPath);

            File::delete($value);
            $this->attributes['image'] = $imgPath;
        }
    }

Не в сети

Подвал раздела