springmvc上传文件

本文介绍了一种通过Java实现的文件上传方法,该方法能够接收客户端上传的文件,并将其保存到服务器指定目录下。在保存过程中,为了防止文件覆盖,采用时间戳与随机数结合的方式重新生成文件名。

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

上传文件,修改文件名保存在服务器端

/**
	 * 文件上传
	 * desc:
	 * author:yang
	 * @throws Exception 
	 */
	@RequestMapping("/toPersonForUpload.do")
	public String toPersonForUpload(Person person, HttpServletRequest request) throws Exception{
		//转换request
		MultipartHttpServletRequest  mr = (MultipartHttpServletRequest) request;
		//获得文件
		CommonsMultipartFile cf = (CommonsMultipartFile) mr.getFile("pic");
		//文件流化
		byte[] fbyte = cf.getBytes();
		//获得本机的文件路径和名字
		String orifileName = cf.getOriginalFilename();
		//获取当前的时间,精确到毫秒
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMddhhmmssSSS");
		String fileName = format.format(new Date());
		//取三位随机数
		Random random = new Random();
		for(int i = 0; i < 3; i++){
			fileName = fileName + random.nextInt(9);
		}
		//获取文件后缀
		String suffix = orifileName.substring(orifileName.lastIndexOf("."));
		//拼接完整文件名
		fileName = fileName + suffix;
		String path = request.getSession().getServletContext().getRealPath("/");
		//定义输出流
		OutputStream out = new FileOutputStream(path+"upload/"+fileName);
		//写到服务器上
		out.write(fbyte);
		out.flush();
		out.close();
		return "success";
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值