Как сделать загрузку на сервер нескольких файлов с различными расширениями в yii2?

Стоит ли создавать в базу данных ячейку file или же создать в таблице posts ячейки id, title, text img, mp3, и т.д.
Или же как-то создать отдельную папку, для загрузки туда всех типов файлов? Могу ли я прописать в модели
[['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg.,mp3,mov,pdf,doc'],
?
Как лучше сделать?
  • Вопрос задан
  • 534 просмотра
Пригласить эксперта
Ответы на вопрос 2
@matperez
Делайте все как в руководстве для загрузки нескольких файлов

Если на один пост может быть несколько файлов, ссылки на отдельные загруженные файлы лучше в отдельную таблицу писать и связывать с постом через какой-нибудь post_id.
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Вариантов много. Иногда можно создать папку, например postimg, а в ней создавать папки с id поста, в которые сохранять картинки. Что это даст:
Не будет папок с миллионом картинок.
Не надо хранить их имена в бд
Просто удалить всю папку при удалении поста, через beforedelete

Минусы: пока не создан post у него еще нет id. Решение - кидать во временную папку, например postimg/temp. А после сохранения перемещать все из нее в папку с id. Cсоответственно для update и create будут немного разные логики.

P.S.: я для множественной загрузки использую dropzone, очень удобно и просто настроить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы