Spring MVCはファイルアップロードフォームのプロパティ値を変換できませんでした.

Spring MVCはファイルアップロードフォームのプロパティ値を変換できませんでした

問題

Spring MVCアプリケーションで、ファイルアップロードボタンをクリックすると、次のプロパティタイプ変換エラーが発生しますか?

_
タイプ[org.springframework.web.multipart.commons.CommonsMultipartFile]のプロパティ値をプロパティファイルに必要なタイプ[byte []]に変換できませんでした。ネストされた例外はjava.lang.IllegalArgumentExceptionです:タイプ[org.springframework.web.multipart.commons.CommonsMultipartFile]の値をプロパティファイル[0]に必要なタイプ[byte]に変換できません: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でアップロードされたファイルを処理する際の一般的な問題であり、アップロードされたファイルをバイト配列に自動的に変換できません。 これを機能させるには、SimpleFormControllerのinitBinder()メソッドにカスタムエディター(ByteArrayMultipartFileEditor)を登録して、アップロードされたファイルをバイト配列に変換するように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());

    }
    //...