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

标签 java ajax spring jsp spring-mvc

我有一个 jsp 文件,我在其中使用 ajax 文件上传方法上传文件。对于文件的后端处理,我在 Spring 制作了一个 Controller 。但是我找不到在这种情况下如何处理 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) 添加 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);

关于java - 如何使用ajax文件上传和spring mvc上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31832169/

相关文章:

java - ...Pattern.compile() 的用法

javascript - 事件点击 href <a> 标签

java - 损坏的 Spring Boot 调试过程 - 忽略断点

Java spring-rest/Jersey 如何使用过滤器保护休息路线

java - Firebase MLKit 可以用于检测多边形吗?

java - 用java创建一个循环正方形

php - 尝试显示可使用 ajax 和 php 编辑的实时表

javascript - XMLHttpRequest 点击次数过多 - 脚本崩溃 (JavaScript)

java - 主线程不等待订阅者完成响应式(Reactive)订阅者的任务

java - BindingResult 和普通目标对象都不是...异常