Servlet系列学习笔记16 --- Servlet 3.0规范实现文件上传

本文介绍了一个使用Servlet处理文件上传的示例。通过设置Multipart配置,Servlet可以解析HTTP请求中的文件部分,并将它们保存到服务器上的指定目录。文章详细展示了如何通过HttpServletRequest的getParts()方法获取上传的文件列表,并通过Content-Disposition头部信息提取每个文件的原始名称。

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

@MultipartConfig  // 1.设置Servlet可以处理Multipart请求
public class UploadServlet3 extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//2.设置文件存放目录
        String savePath = getServletContext().getRealPath("/WEB-INF/upload");
		//3.获取form表单上传的多个文件
		List<Part> parts = (List<Part>) request.getParts();
		//4.循环遍历多个文件
		for(Part part : parts) {
			//5.截取文件名
			//经过过request请求信息的分析,原文件名在头信息的Content-Disposition中,所以获取Content-Disposition的值如下
			//form-data; name="file"; filename="文件名.后缀名"
			String header = part.getHeader("Content-Disposition");
			int index = header.lastIndexOf("=");  //获取最后的等号索引
			String fileName = header.substring(index+2,header.length()-1);
			//6.判断文件名是否满足要求,如果满足则保存到指定目录下
			if (fileName != null && !fileName.equals("")) {
				part.write(savePath+"/"+fileName);
			}
		}
	}
}

第五步也可以改为

String header = part.getHeader("Content-Disposition").replace("\"", "");
int index = header.lastIndexOf("=");  //获取最后的等号索引
String fileName = header.substring(index+1);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值