spring-文件上传

Categories:

文件上传


文章目录[隐藏]

1.导包

<dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.1</version>
</dependency>

2.配置

springMVC-servlet.xml配置文件中添加

<!--文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<property name="maxUploadSize" value="1048576"/>
	<property name="defaultEncoding" value="UTF-8"/>
	<property name="resolveLazily" value="true"/>
</bean>

注:bean的id不能修改

3.controller

@Controller
public class FileController {
    @RequestMapping("/upload.html")
    public String fileUpload(@RequestParam("file")MultipartFile file) {
        try {
            FileUtils.copyInputStreamToFile(file.getInputStream(),//获取文件输入流
                    new File("E:/upload/",//文件保存路径
                            file.getOriginalFilename()));//文件保存名-原文件名
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "/upload.jsp";
    }
}

4.web

form表单

<form action="/upload.html" method="post" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <input type="submit" value="上传"/>
</form>

ajax请求

var myFormdata = new FormData();
myFormdata.append("name", $("input[name=i_name]").val());
myFormdata.append("file", $("#file")[0].files[0]);
$.ajax({
     url: "/upload.html",
     type: 'POST',
     data: myFormdata,
     async: false,
     cache: false,
     contentType: false,
     processData: false,
     success: function (data) {
         if(data)
             location.reload(true);
     }
})

注:使用ajax请求jquery版本高一些