1
  1. ディスパッチャー サーブレットでマルチパート リゾルバーを構成しました。最初のアイテム
  2. 結果を特定の div に反映させたい。
  3. 特定の div で応答を取得する動機は ajax を使用して満たされますが、画像ファイルがコントローラーに到達しないため、画像のアップロードが null を返すというエラーが発生します。
  4. 画像ファイルがコントローラーに到達できず、null を返します。
  5. イメージ ファイルをコントローラーで受信する必要があります。また、応答は「harryPAGE」というdivにある必要があります

私のjspフォームページは

 <form:form method="post" modelAttribute="uploadBean"
    action="url"//this action takes to controller with request mapping as "hello"
     commandName="uploadBean">
    <table class="standardTable">

        <tr>
            <td>File</td>
            <td><input type="file" name="fileData" id="fileData" size="50"
                 required="required"></td>
        </tr>
        <tr>
            <td colspan=2 align="left"><input
                class="btn right breadPrevious" type="submit" value="Upload"
                 /></td>


        </tr>

    </table> 

<script>

    $.ajax({
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
    });

    $("form").submit(

            function() {
                alert("hi");
                var value = $("#fileData");
                alert(value);

                $.post($(this).attr("action"), $(this).serialize(),
                        function(html) {
                            $("#harryPAGE").html(html);
                        });
                return false; // prevent normal submit
            });



    </script>
    <c:out value="${message}"></c:out>
</form:form>

私のコントローラークラスは

@RequestMapping(value = "/hello", method = RequestMethod.POST)
public  ModelAndView uploadImage(@ModelAttribute ImageUploadBean uploadBean,HttpServletRequest req) {
    int test=5; 

    ModelAndView modelAndView = new ModelAndView("apage");
    try {
        System.out.println(req.getParameter("fileData"));
        MultipartFile imgFile = uploadBean.getFileData();

        test=imageService.uploadImage(imgFile);
        if(test==1){

            modelAndView.addObject("message","some message");           }
        else if(test==0){

            modelAndView.addObject("message","some message");           }               
    } catch (Exception e) {//the control enters here and gives exception
        logger.error("Unable to upload image " + e.getMessage(), e);
        modelAndView.addObject("message","some error");     }
    return modelAndView;
}

私のディスパッチャーサーブレット.xmlファイルは、マルチパートリゾルバーを構成しました

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">     
<!-- one of the properties available; the maximum file size in bytes -->   
<property name="maxUploadSize" value="100000000"/>  
</bean>  
4

1 に答える 1

0

フォームに属性を追加するだけenctype="multipart/form-data"です:)

于 2013-01-24T23:03:28.337 に答える