Вы используете поле HTML5 для загрузки файла DnD, не так ли? Я не знаю, какие функции предоставляет JS, но обычно, когда вы удаляете файл, он автоматически загружает его. Я полагаю, вы можете имитировать функцию загрузки на YouTube. Например:
После загрузки файла верните json с сгенерированным идентификатором файла, чтобы при сохранении записей вы могли связать его с только что загруженным файлом.
Когда я играл с ним, обычно javascript откроет новый POST-запрос, этот запрос вы должны получить из request.body
, который является InputStream
, используйте этот InputStream с IOUtils для сохранения файла, после сохранения верните JSON-объект с именем файла или путем к файлу.
Дело в том, что я не думаю, что он никогда не пройдет через File files[]
, потому что javascript открывает новый запрос POST, поэтому он всегда будет возвращать неверное значение, так как он никогда не заполняется, когда вы отправляете данные на стороне сервера.
Вы можете попробовать это: создать два маршрута, один, который загружает файл, один, который сохраняет метаданные файла, одним методом вы выполняете всю обработку файла, другой захватывает возврат json и связывает его затем сохраните :)
Я также разместил здесь несколько примеров кодов на похожий вопрос:
PlayFramework: Ajax + Drag n 'Drop + Загрузка файла + Файловый объект в контроллере?
Привет, извините, если я звучу немного излишне, немного устал, но я надеюсь, что это поможет вам:)