Проблема
В приложении Spring MVC при нажатии на кнопку загрузки файла возникает следующая ошибка преобразования типа свойства?
Не удалось преобразовать значение свойства типа [org.springframework.web.multipart.commons. CommonsMultipartFile] к требуемому типу [байт[]] для файла свойств; вложенным исключением является java.lang. Исключение IllegalArgumentException: Не удается преобразовать значение типа [org.springframework.web.multipart.commons. CommonsMultipartFile] к требуемому типу [байт] для файла свойств [0]: Редактор свойств [org.springframework.beans.редакторы свойств. CustomNumberEditor] возвращено неподходящее значение
Вот контроллер SimpleFormController …
public class FileUploadController extends SimpleFormController{ public FileUploadController(){ setCommandClass(FileUpload.class); setCommandName("fileUploadForm"); } //... public class FileUpload{ byte[] file; //... }
Решение
Это распространенная проблема при обработке загруженного файла в Spring MVC, который не может автоматически преобразовать загруженный файл в массив байтов. Чтобы это работало, вам необходимо зарегистрировать пользовательский редактор ( ByteArrayMultipartFileEditor ) в методе Simpleformcontroller InitBinder() , который поможет Spring преобразовать загруженный файл в массив байтов.
public class FileUploadController extends SimpleFormController{ public FileUploadController(){ setCommandClass(FileUpload.class); setCommandName("fileUploadForm"); } @Override protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws ServletException { // Convert multipart object to byte[] binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor()); } //...
Оригинал: “https://mkyong.com/spring-mvc/spring-mvc-failed-to-convert-property-value-in-file-upload-form/”