如何使用ajax文件上传和spring mvc上传文件?

3

我有一个jsp文件,使用ajax文件上传方法上传文件。为了后端处理文件,我在spring中创建了一个控制器。但是我不知道如何在这种情况下处理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>
1个回答

6

有两个主要步骤:

1)向Spring上下文添加多部分解析器(multipart resolver)的实例。

<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);

好的,但我想不使用注释来完成它...我该怎么做? - Amit Das
请参考这个问题以了解无需注释的配置。在这种情况下,您必须使用request.getInputStream()。但是,我建议使用注释配置。 - Constantine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接