Spring MVC上传文件

本文介绍如何使用SpringMVC框架实现文件上传功能。通过配置applicationContext.xml设置文件大小限制及编码,并创建uploadFile.jsp页面供用户选择文件。UploadFileAction类处理文件上传请求,利用Spring提供的MultipartFile类完成文件保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.applicationContext.xml

1 <bean id="multipartResolver"
2         class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
3         <property name="maxUploadSize" value="104857600" />
4         <property name="maxInMemorySize" value="4096" />
5         <property name="defaultEncoding" value="UTF-8"></property>
6     </bean>

 

2.uploadFile.jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 
11     <form name="Form2" action="/tao-manager-web/springUpload" method="post"
12         enctype="multipart/form-data">
13         <h1>使用spring mvc提供的类的方法上传文件</h1>
14         <input type="file" name="file"> <input type="submit"
15             value="upload" />
16     </form>
17 </body>
18 </html>

3.UploadFileAction.java

 1 package com.taozhiye.controller;
 2 
 3 import java.io.File;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.InputStream;
 8 import java.io.OutputStream;
 9 import java.util.Date;
10 import java.util.Iterator;
11 
12 import javax.servlet.http.HttpServletRequest;
13 
14 import org.springframework.stereotype.Controller;
15 import org.springframework.web.bind.annotation.RequestMapping;
16 import org.springframework.web.bind.annotation.RequestParam;
17 import org.springframework.web.bind.annotation.ResponseBody;
18 import org.springframework.web.multipart.MultipartFile;
19 import org.springframework.web.multipart.MultipartHttpServletRequest;
20 import org.springframework.web.multipart.commons.CommonsMultipartFile;
21 import org.springframework.web.multipart.commons.CommonsMultipartResolver;
22 
23 @Controller
24 public class UploadFileAction {
25     
26     
27     @RequestMapping("uploadFile")
28     public String goFile(){
29         return "uploadFile";
30         }
31 
32     /*
33      * 采用spring提供的上传文件的方法
34      */
35     @RequestMapping("springUpload")
36     @ResponseBody
37     public String springUpload(HttpServletRequest request)
38             throws IllegalStateException, IOException {
39         long startTime = System.currentTimeMillis();
40         // 将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
41         CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
42                 request.getSession().getServletContext());
43         // 检查form中是否有enctype="multipart/form-data"
44         if (multipartResolver.isMultipart(request)) {
45             // 将request变成多部分request
46             MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
47             // 获取multiRequest 中所有的文件名
48             Iterator iter = multiRequest.getFileNames();
49             while (iter.hasNext()) {
50                 // 一次遍历所有文件
51                 MultipartFile file = multiRequest.getFile(iter.next()
52                         .toString());
53                 if (file != null) {
54                     String path = "E:/springUpload"
55                             + file.getOriginalFilename();
56                     // 上传
57                     file.transferTo(new File(path));
58                 }
59 
60             }
61 
62         }
63         long endTime = System.currentTimeMillis();
64         System.out.println("方法的运行时间:" + String.valueOf(endTime - startTime)
65                 + "ms");
66         return "success";
67     }
68 }
69         

 

转载于:https://www.cnblogs.com/taozhiye/p/6689187.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值