【问题标题】:How to upload file using ajax file upload and spring mvc?如何使用ajax文件上传和spring mvc上传文件?
【发布时间】:2015-10-28 05:01:10
【问题描述】:

我有一个 jsp 文件,我在其中使用 ajax 文件上传方法上传文件。对于文件的后端处理,我在春天做了一个控制器。但我找不到在这种情况下如何处理 spring 2.5 中的文件? 我的代码是 -

JSP 文件

<input type="file" name="file" />
<script type="text/javascript">
        function saveMedia() {
            var formData = new FormData();
            formData.append('file', $('input[type=file]')[0].files[0]);
            console.log("form data " + formData);
            $.ajax({
                url : 'ajaxSaveMedia.do',
                data : formData,
                processData : false,
                contentType : false,
                type : 'POST',
                success : function(data) {
                    alert(data);
                },
                error : function(err) {
                    alert(err);
                }
            });
        }
    </script>

【问题讨论】:

    标签: java ajax spring jsp spring-mvc


    【解决方案1】:

    主要有两个步骤:

    1) 将multipart resolver 的实例添加到 Spring 上下文中

    <bean id="multipartResolver"
            class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
    

    2) 添加处理方法

    // I assume that your controller is annotated with /ajaxSaveMedia.do
    @RequestMapping(method = RequestMethod.POST)
    public @ResponseBody String doUpload(@RequestParam("file") MultipartFile multipartFile) {                 
        return "Uploaded: " + multipartFile.getSize() + " bytes";
    }
    

    从org.springframework.web.multipart.MultipartFile 获取java.io.File 的实例:

    File file = new File("my-file.txt");
    multipartFile.transferTo(file);
    

    【讨论】:

    • 好的,但我想在没有注释的情况下这样做......我该怎么做?
    • 无注解配置请看this question。在这种情况下,您必须使用 request.getInputStream()。不过,我会推荐注解配置。
    猜你喜欢
    • 2015-11-03
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2013-12-23
    • 2015-03-29
    • 1970-01-01
    相关资源
    最近更新 更多