spring架构的文件上传方式

本文详细介绍了如何在Java Web应用中使用Spring框架的MultipartFile类进行文件上传,包括HTML表单配置、MultipartFile的获取及文件保存过程。通过具体代码示例,展示了如何处理上传的图片文件,包括文件格式验证、图片路径生成、文件夹创建和文件保存。

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

 

1.传统方式

 

 

 

 

2. MultipartFile 的 transferTo

<form action="<%=path%>/salesMan/salesSave.action" onsubmit="return editSalesCheck()" method="post" enctype="multipart/form-data">
	<input id="salesImages" name="salesFile" type="file"/>
	<input class="btn btn-primary radius" type="submit" value="  添加  "/>
</form>
@RequestMapping("/salesSave")
public String salesSave(HttpServletRequest request,Model model,Sales sale) {
	MultipartRequest multipartRequest = (MultipartHttpServletRequest) request;
	MultipartFile salesFile = multipartRequest.getFile("salesFile");// 获取上传文件名  
	String newSaleImg = "";
	if (!salesFile.isEmpty()) {
		String string = salesFile.getOriginalFilename();
		Map<String, Object> yzsuffix = yzsuffix(string,".jpg .jpeg .gif .bmp");
		if("error".equals(yzsuffix.get("sta"))) { //验证文件格式
			model.addAttribute("ywType", ywType);
			model.addAttribute("ywylev", ywylev);
			model.addAttribute("sales", sale);
			model.addAttribute("msg", yzsuffix.get("errmsg"));
			return "save_sales";
		}
		string = "Y"+Tools.GetImgDate()+"/"+new Date().getTime()+ 1 +"salesImg" + string.substring(string.lastIndexOf("."));	        
		//判断图片保存文件夹是否存在,若不存在,则创建:
		String realpath = Constants2.uploadpath + "/" + Constants2.m_sp + "/images/";
		File rfile = new File(realpath+"Y"+Tools.GetImgDate()+"/");
		if(!rfile.exists()) {
			rfile.mkdirs();
		}
		BUFFER_SIZE = (int)salesFile.getSize() + 100; //缓冲区大小预留大小100;
		File imageFile = new File(realpath + string);
		try {
			salesFile.transferTo(imageFile);
		} catch (Exception e) {
			BaseLog.e(this.getClass(), "transferTo() 保存图片异常",e);
			model.addAttribute("ywType", ywType);
			model.addAttribute("ywylev", ywylev);
			model.addAttribute("sales", sale);
			model.addAttribute("msg", "上传头像失败!");
			return "save_sales";
		}
		newSaleImg = string;
	}else{
		model.addAttribute("ywType", ywType);
		model.addAttribute("ywylev", ywylev);
		model.addAttribute("sales", sale);
		model.addAttribute("msg", "请上传头像!");
		return "save_sales";
	}
	
}

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值