Какой совпадение, у меня бэкэнд тоже на Yii, и есть сущность File :-) И при загрузке файла - тоже создается запись для этого файла, и возвращается его id. Но тут есть ряд проблем: что если пользователь загрузит файлы, и уйдет со страницы создания сущности. Тогда у нас останутся файлы, "висящие в воздухе", не привязанные ни к одной сущности. А в моей ситуации это критично, так как все файлы загружаются в папку пользователя, и потом взависимости от размера пользовательской папки - ему предоставляются различные доступы. Есть тарифы использования сервиса, и они варьируются как раз физическим местом на диске. И если юзер загрузит файл, и уйдет со страницы - тогда произойдет утечка места на диске, чего я и пытался избежать , отправляя файлы и информацию о создаваемой сущности одним запросом) Пока в голову приходит одно решение как бороться с повисшими файлами - по крону бегать, и смотреть есть ли файлы висящие в воздухе, дата создания которых например < чем чутки назад.
Спасибо за ответ ! Я в принципе малость разобрался с этим, и почти пришел к решению, которое вы описали (одна кнопка "Добавить"). Но тут я столкнулся с еще одной неприятной особенностью - мне нужно было отправлять все файлы одним запросом. В процессе гугления нашел вот это https://github.com/blueimp/jQuery-File-Upload/issues/2487
Так же наткнулся на баг, немного связанный и не связанный с предыдущей ссылкой: если выставить опцию singleFileUploads: false (в данном случае без использования angularjs), и в input'e будет директива multiple - тогда происходит интересная вещь - если первый раз мы выбрали несколько файлов, то они отправятся одним запросом. Второй раз выбрали - еще один запрос. Т.е. плагин почему то отправляет пачками только те файлы, который были выбраны за одно нажатие на инпут. Линк: https://github.com/blueimp/jQuery-File-Upload/issues/2549
В принципе автор плагина предлагает решение проблемы, но я что-то решил не мучиться, и пока отправляю файлы в разных запросах.
Просто такая ситуация, что есть сущность, у которой есть файлы. И хотелось бы эту сущность сохранять вместе с файлами.