1
  1. 我在调度程序 servlet 中配置了一个多部分解析器。st项目
  2. 我希望结果反映在特定的 div 中。
  3. 我使用 ajax 实现了获取特定 div 响应的动机,但我的图像文件没有到达控制器,因此出现图像上传返回 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;
}

我的调度程序 servlet .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 回答