October CMS Как изменить путь загрузки файла?

Я использую October CMS.

Я сделал простой внешний плагин для загрузки файлов. У меня есть модель и компонент.

форма загрузки

В Model Uploader.php я использую

public $attachOne = [
    'videofile' => 'System\Models\File'
];

И в Компоненте

public function onUpload(){
    $uploader = new Uploader();
    $uploader->videofile = Input::file('videofile');
    $uploader->save();
    Flash::success('File Uploaded');
    return Redirect::back();
}

По умолчанию загрузки переходят в

/storage/app/uploads/public/random-dir/random-name.mp4

CMS присваивает файлам случайный каталог и имя.

Но бэкэнд Мультимедиа загружается на

/storage/app/media/filename.mp4

Имя файла сохраняется.

Как сделать так, чтобы файлы загружались в / media вместо / uploads / public?

Или можно указать папку и имя файла вместо случайного в / uploads / public?


person Matt McManis    schedule 29.01.2017    source источник
comment
Наследуется ли $ uploader- ›save () или это написанная вами функция?   -  person Ofir Baruch    schedule 29.01.2017
comment
@OfirBaruch Я следил за гидом. Я не писал функцию сохранения. Я думаю, это передается по наследству.   -  person Matt McManis    schedule 29.01.2017


Ответы (1)


Вы можете переместить файл, прежде чем прикреплять его к модели Uploader:

Input::file('videofile')->move($destinationPath, $fileName);

Вы можете получить исходное имя файла следующим образом

$name = Input::file('videofile')->getClientOriginalName();
person dragontree    schedule 30.01.2017
comment
Спасибо, все работает для перемещения файла. Когда я использую $ uploader- ›videofile = (ваш код перемещения) и save (), данные для загрузки файлов остаются пустыми в базе данных, тогда как раньше в них были сведения и ссылка на путь. Вы бы знали, как сохранить новое местоположение в базе данных? i.imgur.com/Pz9pIJu.png - person Matt McManis; 30.01.2017
comment
Вы сохранили модель после перемещения файла? - person dragontree; 31.01.2017
comment
Сохранил после переезда. Если файл не перемещается (по умолчанию), таблица базы данных system_files обновляется. При перемещении файла он не обновляется. Я просматриваю информацию о таблице через columns.yaml. Вот скриншот. i.imgur.com/A0udWWB.jpg - person Matt McManis; 31.01.2017
comment
Вы должны сохранить модель файла, а не загрузчика. В вашем случае $uploader->videofile - person dragontree; 31.01.2017
comment
Как сохранить модель файла? Я пробовал это, но не могу получить к нему доступ из моего класса Uploader. i.imgur.com/JuhJxaQ.png - person Matt McManis; 31.01.2017
comment
Я использовал System \ Models \ File и $ file = new File (); Теперь он общается с базой данных, но не может писать в таблицы. Неизвестная ошибка столбца. Но он записывает в таблицы, если вы не перемещаете файл. - person Matt McManis; 31.01.2017