SpringMVC文件上传

本文介绍了一个基于SpringMVC的文件上传控制器实现方法,并详细展示了如何配置文件上传解析器及上传过程中的关键步骤。

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

package com.zzxsoft.controller;


import java.io.File;


import java.util.Iterator;


import javax.servlet.http.HttpServletRequest;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.ModelAndView;

/*文件上传,FileUploadController类
 * @ author
 * **/
@Controller
@RequestMapping("/file")
public class FileUploadController {
@RequestMapping("/upload")


public ModelAndView upload(HttpServletRequest request) throws Exception {
// 将当前文件初始化给CommonsMutipartResolver (多部分解析器)
int count = 0;
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
// 检查表单中是否有 enctype="multipart/from-data"
if (multipartResolver.isMultipart(request)) {
// 将request变成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
// 获取multiRequest中所有的文件域中
Iterator iterator = multiRequest.getFileNames();
// 遍历所有文件域
while (iterator.hasNext()) {
// 判断是否有选择的文件
MultipartFile file = multiRequest.getFile(iterator.next().toString());
// 判断文件域中是否有选择的文件
if (file != null && file.getOriginalFilename() != "") {
// 路径是项目中服务器端的路径. file.getOriginalFilename()是文件名,包含后缀 .txt
String path = request.getSession().getServletContext().getRealPath("/fileUpload/")
+ file.getOriginalFilename();


System.out.println(path);
// 上传文件
file.transferTo(new File(path));
count++;
}
}
}


return new ModelAndView("fileUpload", "msg", "成功上传 " + count + " 个文件");


}


}



/*文件上传,.jsp页面
 * @ author
 * **/


SpringMVC-servlet.xml的配置

<!-- 文件上传  CommonsMultipartResolver-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <!-- 设置文件上传最大值,注意,这个值是所有文件的大小和 1024*1024*4 =  4 M -->
         <property name="maxUploadSize" value="4194304"/>
         <!-- 缓冲区大小  -->
         <property name="maxInMemorySize" value="4096"/>
         <!-- 设置上传时的字符编码 -->
         <property name="defaultEncoding" value="utf-8"/>
    </bean>

上传前的界面


上传时的界面


上传好返回时的界面


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值