JAVA 文件上传,单文件和多文件

1.单文件上传

	public String upload(MultipartFile file) {
		try {
			if(file.isEmpty()) {
				return "file is empty";
			}
			//文件名称含后缀
			String fileName = file.getOriginalFilename();
			//文件夹名称
			String name = fileName.substring(0,fileName.lastIndexOf("."));
			String suffixName = fileName.substring(fileName.lastIndexOf("."));
			log.info("上传的文件名为:"+fileName+" 后缀名为:"+suffixName);
			//文件在服务器中存储路径
			String filePath = "存储文件的路径" + name + "\\";
			String path = filePath + fileName;
			File dest = new File(path);
			//检测存储文件夹时候存在
			if(!dest.getParentFile().exists()) {
				dest.getParentFile().mkdirs();//新建文件夹
			}
			file.transferTo(dest);//文件写入
			return "upload success";
		} catch (IllegalStateException e) {
			// TODO: handle exception
			e.printStackTrace();
		}catch (IOException e) {
			// TODO: handle exception\
			e.printStackTrace();
		}
		return "upload failure";
	}

2.多文件上传:

	public String handleFileUpload(HttpServletRequest request) {
		List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
		MultipartFile file = null;
		BufferedOutputStream stream = null;
		for(int i=0;i<files.size();i++) {
			file = files.get(i);
			//文件名称含后缀
			String fileName = file.getOriginalFilename();
			//文件夹名称
			String name = fileName.substring(0,fileName.lastIndexOf("."));
			//文件在服务器存储路径
			String filePath = "文件存储路径" + name + "\\";
			if(!file.isEmpty()) {
				try {
					File dest = new File( filePath + fileName);
					//判断文件夹是否存在
					if(!dest.getParentFile().exists()) {
						dest.getParentFile().mkdirs();//新建文件夹
					}
					byte[] bytes = file.getBytes();
					stream = new BufferedOutputStream((new FileOutputStream(dest)));
					stream.write(bytes);//写入
					stream.close();
				} catch (Exception e) {
					// TODO: handle exception
					stream = null;
					return "the" + i + "file upload failure";
				}
			}else {
				return "the" + i + "file is empty";
			}
		}
		return "upload multifile success";
		
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值