图片上传

Web端: 单图上传: 图片放阿里云文件服务器上 /** * 用户认证 第二步:营业执照 * * @param user * @param request * @return */ @RequestMapping(value = "/business", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public Map<String, Object> business( @RequestParam("businessfile") MultipartFile businessfile, @RequestParam("userId") Long userId, HttpServletRequest request) throws IOException { // 文件原名称 String fileName = businessfile.getOriginalFilename();

	// 为了避免重复简单处理
	String nowName = new Date().getTime() + "_" + fileName;
	Map<String, Object> result = Maps.newHashMap();
	String originalName = "";
	String finalName = "";

	CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
			request.getSession().getServletContext());
	if (multipartResolver.isMultipart(request)) {
		MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
		Iterator iter = multiRequest.getFileNames();
		while (iter.hasNext()) {
			MultipartFile file = multiRequest.getFile(iter.next()
					.toString());
			if(file.getSize() == 0){
				continue;
			}
			finalName = ossFile.uploadImageOssAPP(file);
			if (StringUtils.isEmpty(finalName)) {
				finalName = ossFile.uploadImageLocal(file);
			}
			
		}
	}

	result.put("state", "SUCCESS");
	result.put("originalName", originalName);
	result.put("title", finalName);
	result.put("url", finalName);
	AuthenBusinessDto dto = authenBusinessService.searchAuBus(userId);
	int num = 0;
	if(dto != null && StringUtils.isNotEmpty(finalName) ){
		dto.setBusiness(finalName);
		dto.setCreateTime(new Date());
		dto.setUpdateTime(new Date());
		num = authenBusinessService.updateByUserId(dto);
		if (num != 1) {
			result.put("code", 0);
			result.put("msg", "上传失败!");
		} else {
			result.put("code", 1);
			result.put("msg", "上传成功!");
		}
		return result;
	}else{
		result.put("code", 2);
		result.put("state", "失败");
		result.put("msg", "用户id不存在");
		return result;
	}
	
}

多图上传: /** * 用户认证 专利上传 * * @param user * @param request * @return */ @RequestMapping(value = "/patent") @ResponseBody public Map<String, Object> patent( @RequestParam("userId") Long userId, HttpServletRequest request) throws IOException { Map<String, Object> result = new HashMap<String, Object>(); // 获得url地址 String imageurlList = ""; String finalName = ""; CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Map map = multiRequest.getFileMap();
Iterator iter =map.keySet().iterator(); MultipartFile file = null; while (iter.hasNext()) { file = (MultipartFile)map.get(iter.next()); if (file.getSize() == 0) { continue; } finalName = ossFile.uploadImageOssAPP(file); if (imageurlList == null || imageurlList == "") { imageurlList = finalName; } else { imageurlList = imageurlList + ";" + finalName; }

					if (StringUtils.isEmpty(finalName)) {
						finalName = ossFile.uploadImageLocal(file);
						imageurlList = imageurlList + ";" + finalName;
					}
				}
			}
	AuthenBusinessDto dto = authenBusinessService.searchAuBus(userId);
	if (dto == null && StringUtils.isNotEmpty(imageurlList)) {
		AuthenBusinessDto authenBusinessDto = new AuthenBusinessDto();
		authenBusinessDto.setUserId(userId);
		authenBusinessDto.setPatent(imageurlList);
		authenBusinessDto.setStatus(0);
		authenBusinessDto.setIsDelete(0);
		authenBusinessDto.setCreateTime(new Date());
		authenBusinessDto.setUpdateTime(new Date());
		int num = authenBusinessService.updateByUserId(authenBusinessDto);
		if (num != 1) {
			result.put("code", 0);
			result.put("msg", "添加失败");
			return result;
		} else {
			dto = authenBusinessService.searchAuBus(userId);
			result.put("code", 1);
			result.put("data", dto);
			result.put("msg", "添加成功");
			return result;
		}
	}
	result.put("code", 2);
	result.put("msg", "用户id不存在");
	return result;
}

APP端:

/** * 活动表增添数据 * * @return / @RequestMapping(value = "/add") public Map<String, Object> add(Activity activity, HttpServletRequest request) { Map<String, Object> result = new HashMap<String, Object>(); Map<String, Object> data = new HashMap<String, Object>(); String imageurlList = ""; String finalName = ""; String firstName = ""; // 先实例化一个文件解析器 CommonsMultipartResolver coMultiResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); // 判断request请求中是否有文件上传 if (coMultiResolver.isMultipart(request)) { / * List<String> fileUrlList = new ArrayList<String>(); // * 用来保存文件路径,用来jsp页面遍历回显 */ // 转换Request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; // 获得文件,方式一 List<MultipartFile> files = multiRequest.getFiles("file"); for (MultipartFile file : files) { // 循环遍历,取出单个文件,下面的操作和单个文件就一样了 if (!file.isEmpty()) { // 这个判断必须要加 finalName = ossFile.uploadImageOss(file); if (imageurlList == null || imageurlList == "") { imageurlList = finalName; firstName = finalName; } else { imageurlList = imageurlList + ";" + finalName; }

				if (StringUtils.isEmpty(finalName)) {
					finalName = ossFile.uploadImageLocal(file);
					imageurlList = imageurlList + ";" + finalName;

				}
			}
		}
	}
	// 1.获得用户id
	activity.setUserId(Long.parseLong(request.getParameter("userId")));
	// 2.是否为会议
	activity.setMeeting(Integer.valueOf(request.getParameter("meeting")));

	// 3.可见权限
	activity.setMeeting(Integer.valueOf(request.getParameter("authority")));
	
	// 4.设置imageurlList
	activity.setImageurlMap(imageurlList);

	if (activity.getAuthority() == 0) {// 权限为0,仅自己可见
		activity.setState(2);
	}else{
		activity.setState(0);//全网可见,订单待支付
	}
	

	// 需要做事物管理

	// 插入活动表
	int num = activityService.insert(activity);
	// 插入个人日程表
	personalScheduleService.insert(activity.getUserId(),
			activity.getActivityId());
	if (activity.getAuthority() == 1) {// 全网可见
		// 根据行业与地区获得金额
		String amount = "0.01";

		String orderNum = OrderNumUtil.outtradeno("HD");
		// 插入订单表
		activityOrderService.insert(amount, activity.getActivityId(),
				orderNum);
		// 插入订单总表
		allOrderService.insertActivity(activity, firstName, orderNum,amount);
		
		data.put("totalAmount", amount);
		data.put("orderNum", orderNum);
		data.put("typeId", 3);
	}

	if (num == 1) {
		result.put("code", 1);
		result.put("msg", "存储成功");

		result.put("data", data);
	} else {
		result.put("code", 0);
		result.put("msg", "存储失败");
	}
	return result;

}

阿里云oss工具类: package com.yaan.youqi.service.component;

import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Calendar;

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject; import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.PutObjectResult;

import net.coobird.thumbnailator.Thumbnails;

/**

  • @author Michael Feng

  • @date 2017年5月22日 **/ public class OssFile { private static final Logger logger = LoggerFactory.getLogger(OssFile.class); private static final String IMAGE_PATH = "/img/"; private static final String IMAGE_FORMAT = "png";

    private String domain;

    private String endpoint;

    private String accessKeyId;

    private String accessKeySecret;

    private String bucketName;

    private OSSClient client;

    private String defaultDomain;

    /**

    • 上传图片

    • @return */ public String uploadImageOss(MultipartFile file){ if(file == null){ return null; }

      client = new OSSClient(endpoint,accessKeyId, accessKeySecret); Calendar c = Calendar.getInstance(); String finalName = "";

      try{

       String originalName = file.getOriginalFilename();
       //String dir =  c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH)+1) + "/";
       String  dir = "admin-img/";
       //拼凑文件名称,不能拼成http://这种
       String postfix = originalName.substring(originalName.lastIndexOf(".") + 1, originalName.length());
       finalName =  dir + c.getTimeInMillis() + "." + postfix;
       Thumbnails.of(finalName).size(200,200).keepAspectRatio(false);
       Thumbnails.of(finalName).scale(0.4f);
       PutObjectResult result = client.putObject(bucketName, finalName, file.getInputStream());
      

      }catch(Exception e){ logger.info("上传文件失败!"); return null; }finally{ client.shutdown(); }

      return domain +"/" + finalName; }

    /**

    • 上传图片

    • @return */ public String uploadImageOssAPP(MultipartFile file){ if(file == null){ return null; }

      client = new OSSClient(endpoint,accessKeyId, accessKeySecret); Calendar c = Calendar.getInstance(); String finalName = "";

      try{

       String originalName = file.getOriginalFilename();
       //String dir =  c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH)+1) + "/";
       String dir = "web-img/";
      
       //拼凑文件名称,不能拼成http://这种
       String postfix = originalName.substring(originalName.lastIndexOf(".") + 1, originalName.length());
       finalName =  dir + c.getTimeInMillis() + "." + postfix;
       Thumbnails.of(finalName).scale(0.4f);
       Thumbnails.of(finalName).size(200,200).keepAspectRatio(false);
       PutObjectResult result = client.putObject(bucketName, finalName, file.getInputStream());
      

      }catch(Exception e){ logger.info("上传文件失败!"); return null; }finally{ client.shutdown(); } return domain +"/" + finalName; }

    /**

    • 上传文档

    • @return */ public String uploadDocOssAPP(MultipartFile file){ if(file == null){ return null; }

      client = new OSSClient(endpoint,accessKeyId, accessKeySecret); Calendar c = Calendar.getInstance(); String finalName = "";

      try{

       String originalName = file.getOriginalFilename();
       //String dir =  c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH)+1) + "/";
       String dir = "web-doc/";
      
       //拼凑文件名称,不能拼成http://这种
       String postfix = originalName.substring(originalName.lastIndexOf(".") + 1, originalName.length());
       finalName =  dir + c.getTimeInMillis() + "." + postfix;
       Thumbnails.of(finalName).scale(0.4f);
       Thumbnails.of(finalName).size(200,200).keepAspectRatio(false);
       PutObjectResult result = client.putObject(bucketName, finalName, file.getInputStream());
      

      }catch(Exception e){ logger.info("上传文件失败!"); return null; }finally{ client.shutdown(); } return domain +"/" + finalName; }

    /**

    • 上传图片

    • @return */ public String uploadInputStreamOss(InputStream inputStream){ if(inputStream == null){ return null; }

      client = new OSSClient(endpoint,accessKeyId, accessKeySecret); Calendar c = Calendar.getInstance(); String finalName = "";

      try{ //拼凑文件名称,不能拼成http://这种 //String dir = c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH)+1) + "/"; String dir = "admin-img/"; finalName =dir + c.getTimeInMillis() + "." + IMAGE_FORMAT; Thumbnails.of(finalName).scale(0.4f); Thumbnails.of(finalName).size(200,200).keepAspectRatio(false); PutObjectResult result = client.putObject(bucketName, finalName, inputStream); // System.out.println("result:" + JSONObject.toJSONString(result)); }catch(Exception e){ logger.info("上传文件失败!"); return null; }finally{ client.shutdown(); }

      return domain +"/" +finalName; }

    /**

    • 上传图片

    • @return */ public String uploadInputStreamOssAPP(InputStream inputStream){ if(inputStream == null){ return null; }

      client = new OSSClient(endpoint,accessKeyId, accessKeySecret); Calendar c = Calendar.getInstance(); String finalName = "";

      try{ //拼凑文件名称,不能拼成http://这种 //String dir = c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH)+1) + "/"; String dir = "web-img/"; finalName =dir + c.getTimeInMillis() + "." + IMAGE_FORMAT; Thumbnails.of(finalName).scale(0.4f); Thumbnails.of(finalName).size(200,200).keepAspectRatio(false); PutObjectResult result = client.putObject(bucketName, finalName, inputStream); // System.out.println("result:" + JSONObject.toJSONString(result)); }catch(Exception e){ logger.info("上传文件失败!"); return null; }finally{ client.shutdown(); }

      return domain +"/" +finalName; }

    /**

    • 上传图片

    • @return */ public String uploadVideoOss(MultipartFile file){ if(file == null){ return null; }

      client = new OSSClient(endpoint,accessKeyId, accessKeySecret); Calendar c = Calendar.getInstance(); String finalName = "";

      try{

       String originalName = file.getOriginalFilename();
       //String dir =  c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH)+1) + "/";
       String  dir = "admin-video/";
       //拼凑文件名称,不能拼成http://这种
       String postfix = originalName.substring(originalName.lastIndexOf(".") + 1, originalName.length());
       finalName =  dir + c.getTimeInMillis() + "." + postfix;
       Thumbnails.of(finalName).size(200,200).keepAspectRatio(false);
       Thumbnails.of(finalName).scale(0.4f);
       PutObjectResult result = client.putObject(bucketName, finalName, file.getInputStream());
      

      }catch(Exception e){ logger.info("上传文件失败!"); return null; }finally{ client.shutdown(); }

      return domain +"/" + finalName; }

    public String uploadImageLocal(MultipartFile file){ String originalName = ""; String finalName = "";

     if (file == null) {
     	return null;
     }
    
     //创建目录
     Calendar c = Calendar.getInstance(); 
     //String dir = defaultDomain + IMAGE_PATH + c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH)+1) + "/";
     String dir = defaultDomain + "admin-img/";
     File dirFile = new File(dir);
     if(!dirFile.isDirectory()){
     	dirFile.mkdirs();
     }
    
     //拼凑文件名称
     originalName = file.getOriginalFilename();
     String postfix = originalName.substring(originalName.lastIndexOf(".") + 1, originalName.length());
     finalName =dir + c.getTimeInMillis() + "." + postfix;
    
     try {//写入文件
     	file.transferTo(new File(finalName));
     } catch (IllegalStateException e) {
     	logger.error(e.getMessage());
     	return null;
     } catch (IOException e) {
     	logger.error(e.getMessage());
     	return null;
     }
     return finalName;
    

    }

    public String uploadImageLocalAPP(MultipartFile file){ String originalName = ""; String finalName = "";

     if (file == null) {
     	return null;
     }
    
     //创建目录
     Calendar c = Calendar.getInstance(); 
     //String dir = defaultDomain + IMAGE_PATH + c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH)+1) + "/";
    
     String dir = defaultDomain + "/web-img/";
     File dirFile = new File(dir);
     if(!dirFile.isDirectory()){
     	dirFile.mkdirs();
     }
    
     //拼凑文件名称
     originalName = file.getOriginalFilename();
     String postfix = originalName.substring(originalName.lastIndexOf(".") + 1, originalName.length());
     finalName =dir + c.getTimeInMillis() + "." + postfix;
    
     try {//写入文件
     	file.transferTo(new File(finalName));
     } catch (IllegalStateException e) {
     	logger.error(e.getMessage());
     	return null;
     } catch (IOException e) {
     	logger.error(e.getMessage());
     	return null;
     }
     return finalName;
    

    }

    public String getDomain() { return domain; }

    public void setDomain(String domain) { this.domain = domain; }

    public String getEndpoint() { return endpoint; }

    public void setEndpoint(String endpoint) { this.endpoint = endpoint; }

    public String getAccessKeyId() { return accessKeyId; }

    public void setAccessKeyId(String accessKeyId) { this.accessKeyId = accessKeyId; }

    public String getAccessKeySecret() { return accessKeySecret; }

    public void setAccessKeySecret(String accessKeySecret) { this.accessKeySecret = accessKeySecret; }

    public String getBucketName() { return bucketName; }

    public void setBucketName(String bucketName) { this.bucketName = bucketName; }

    public String getDefaultDomain() { return defaultDomain; }

    public void setDefaultDomain(String defaultDomain) { this.defaultDomain = defaultDomain; }

}

转载于:https://my.oschina.net/u/3727427/blog/1842295

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值