Spring MVC не удалось преобразовать значение свойства в форму загрузки файла

Spring MVC не удалось преобразовать значение свойства в форму загрузки файла

проблема

В приложении Spring MVC при нажатии кнопки загрузки файла возникает следующая ошибка преобразования типа свойства?

_
Не удалось преобразовать значение свойства типа [org.springframework.web.multipart.commons.CommonsMultipartFile] в требуемый тип [byte []] для файла свойств; вложенное исключение - java.lang.IllegalArgumentException: не удается преобразовать значение типа [org.springframework.web.multipart.commons.CommonsMultipartFile] в требуемый тип [байт] для файла свойств [0]: PropertyEditor [org.springframework.beans.propertyeditors. CustomNumberEditor] вернул недопустимое значение_

Вот SimpleFormController ...

public class FileUploadController extends SimpleFormController{

    public FileUploadController(){
        setCommandClass(FileUpload.class);
        setCommandName("fileUploadForm");
    }
    //...

public class FileUpload{

    byte[] file;
    //...
}

Решение

Это распространенная проблема при обработке загруженного файла в Spring MVC, который не может автоматически преобразовать загруженный файл в байтовые массивы. Чтобы заставить его работать, вы должны зарегистрировать собственный редактор (ByteArrayMultipartFileEditor) в методеinitBinder() SimpleFormController, чтобы 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());

    }
    //...