Springmvc文件上传

@RequestMapping(value = "/uploadStateImgs", method = RequestMethod.POST)
	@ResponseBody
	public String upload(HttpServletResponse response,
			HttpServletRequest request) throws IOException {
		String responseStr = ""; // 上传之后返回字符串
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); // 获得多文件
		// 文件保存路径 ctxPath本地路径

		HttpSession session = request.getSession();// 获得当前会话
		User currentUser = (User) session.getAttribute("currentUser");// 获得当前登陆用户

		if (currentUser == null) {
			return "";
		} else {
			// 动态发表图片上传根路径
			String ctxPath = session.getServletContext().getRealPath("/../imgs/yyw/stateimgs/") +"/"+ currentUser.getId();
//			String ctxPath = "/yywres/stateimgs/" + currentUser.getId();

			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); // 年月为一个动态保存目录
																	// 分割
			String ymd = sdf.format(new Date());
			ctxPath += File.separator + ymd + File.separator;
			System.out.println("ctxpath=" + ctxPath);
			// 创建文件夹
			File file = new File(ctxPath);
			if (!file.exists()) {
				file.mkdirs();
			}
			String fileName = null;
			List<String> imgUrls = new ArrayList<>();  //一条动态中所有图片路径集合
			for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
				// 上传文件
				MultipartFile mf = entity.getValue();
				String originalFileName = mf.getOriginalFilename();
				fileName = new Date().getTime()+originalFileName.substring(originalFileName.lastIndexOf("."));// 获取原文件名
				System.out.println("filename=" + fileName);
				File uploadFile = new File(ctxPath + fileName);
				try {
					FileCopyUtils.copy(mf.getBytes(), uploadFile);
					responseStr = "上传成功";
					imgUrls.add(uploadFile.getAbsolutePath());
				} catch (IOException e) {
					responseStr = "s上传失败";
					e.printStackTrace();
				}
			}
			String urls = "";
			for(String url: imgUrls){  //拼接路径
				urls = urls + url +"&";
			}
			urls= urls.substring(0,urls.length()-1);
			return urls;
		}
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值