spring mvc 文件上传

spring mvc 文件上传:

@RequestMapping(value="/doUploadFile.do")
	@ResponseBody
	public Map<String, Object> doUploadFile(UpdateVO obj,
			HttpServletRequest request,HttpServletResponse response) throws Exception{

		log.info("start update file..");
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  
	    Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); 
	    
	    List outList = new ArrayList();
	    Iterator<?> itr = fileMap.entrySet().iterator();
	    FileInfo info = new FileInfo();
	    while(itr.hasNext()){
		   Entry<String, MultipartFile> ety = (Entry<String, MultipartFile>) itr.next();
		   MultipartFile file = ety.getValue();
		   
		   String keyPrefix = "";
		   if(obj.getUploadType().equals("firmware")){
			   keyPrefix = Constants.FOLDER_FIRMWARE + "/" + obj.getProductKey()
						+ "/" + obj.getModelId() + "/" + obj.getFirmwareVersion() + "/";
		   }
		   else if(obj.getUploadType().equals("cameraApp")){
			   keyPrefix = Constants.FOLDER_CAMERAAPP + "/" + obj.getProductKey()
						+ "/" + obj.getModelId() + "/" + obj.getCameraAppVersion() + "/";
		   }
		   else if(obj.getUploadType().equals("client")){
			   keyPrefix = Constants.FOLDER_CLIENT + "/" + obj.getProductKey()
						+ "/" + obj.getClientOS() + "/" + obj.getClientVersion() + "/";
		   }
		   
		   log.info("enter upload File function");
		   info = uploadFile(file, request,keyPrefix);
	    }
	    
		ResponseResult result= new ResponseResult();
		result.setSuccess(true);
		result.setReturnObject("result",JSONObject.fromObject(info).toString());
		return result.returnResult();
	}

/***inner method***/
	
	private FileInfo uploadFile(MultipartFile file,HttpServletRequest request,String keyPrefix) throws Exception {
		
		String dir = request.getSession().getServletContext().getRealPath("/")+ Constants.UPLOADDIR;
		
		log.info("upload file dir :{}",dir);
		FileInfo info = new FileInfo();
		if (!file.isEmpty()) {
			// upload file to server first
			String uploadDir = dir +  "/" + keyPrefix;
			File dirFile = new File(uploadDir);
			if (!dirFile.exists()) {
				log.info("create  local file  :{}",uploadDir);
				dirFile.mkdirs();
			}else{
			}
		
			String filename = file.getOriginalFilename();
			File uploadFile = new File(dirFile, filename);

			InputStream is = file.getInputStream();
			FileOutputStream fos = new FileOutputStream(uploadFile);
			
			int size = is.available();
			byte[] fields = new byte[size];
			int len = is.read(fields);
			String md5 = null;
			if(len != -1) {
				if (!isAws() && (len / Constants.PART_SIZE != 0)) {
					md5 = ComputeMessageDigest.computeDigest(fields, "MD5");
				}
				fos.write(fields, 0, len);
			}
			
			is.close();
			fos.flush();
			fos.close();

			String key = keyPrefix + filename;
			
			log.info("start update to s3 :{}", key);
			if(isAws()){
				info = AWSUtil.uploadFile(updateService.getS3Param().getS3Param(),uploadFile, key);
			}else{
				info = AliYunUtil.uploadFile(updateService.getOSSParam().getOssParam(),uploadFile, key, md5);
			}
			
			log.info("Upload file to Cloud successful");
			
			uploadFile.delete();
		}
		return info;
	}











1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值