2

Spring MVCを使用してファイル(複数のファイル)をアップロードしているときに、以下のエラーが発生します。

java.lang.NullPointerException
    com.mkyong.common.controller.FileUploadController.save(FileUploadController.java:34)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)

jsp

<form:form method="post" action="save" 
        modelAttribute="uploadForm" enctype="multipart/form-data">
    <p>Select files to upload. Press Add button to add more file inputs.</p>
    <input id="addFile" type="button" value="Add File" />
    <table id="fileTable">
        <tr>
            <td><input name="files[0]" type="file" /></td>
        </tr>
        <tr>
            <td><input name="files[1]" type="file" /></td>
        </tr>
    </table>
    <br/><input type="submit" value="Upload" />
</form:form>

コントローラ

@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(
        @ModelAttribute("uploadForm") FileUploadForm uploadForm,
                Model map) {
    List<MultipartFile> files = uploadForm.getFiles();

    List<String> fileNames = new ArrayList<String>();
    //counting the file size
    System.out.println("Files count :"+files.size());

    if(null != files && files.size() > 0) { //HERE 'files' is NULL
        for (MultipartFile multipartFile : files) {

            String fileName = multipartFile.getOriginalFilename();
            fileNames.add(fileName);
            //Handle file content - multipartFile.getInputStream()

        }
    }

誰かがこれを修正するのを手伝ってくれますか?jspからコントローラーにファイル(uploadForm)を渡せない理由をまだデバッグ中です。

4

1 に答える 1

1

私はそれを解決しました。<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />dispatcher-servlet.xmlを追加する必要があり ます。

複数のファイルにマルチパートアレイを使用している場合は、アレイ名のみを使用してください。お気に入り

private MultipartFile [] file;

ゲッターとセッターおよびフォーム

<form:form commandName="uploadFile" method="post" enctype="multipart/form-data">
        <input type="file" name="file"/>
        <input type="file" name="file"/>
        <input type="file" name="file"/>
        <input type="submit" value="Submit"/>
    </form:form>
于 2012-12-18T08:54:59.650 に答える