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; }
-
}