控制器接收小程序上传的图片
@RequestMapping(value = "/picture3.html", method = RequestMethod.POST)
@ResponseBody
public JSONArray uploadPicture(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// 获取文件需要上传到的路径
String vtb_name = request.getParameter("vtb_name");
String vtb_photo = request.getParameter("vtb_photo");
String vtb_startdate = request.getParameter("vtb_startdate");
String vtb_buydate = request.getParameter("vtb_buydate");
String vtb_enddate = request.getParameter("vtb_enddate");
String vtb_state = request.getParameter("vtb_state");
Integer vtb_count = Integer.parseInt(request.getParameter("vtb_count"));
String vtb_content = request.getParameter("vtb_content");
String filename = GetTime();
MultipartHttpServletRequest req = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = req.getFile("file");
String realPath = "C:\\Users\\Administrator\\Desktop\\";
try {
File dir = new File(realPath);
if (!dir.exists()) {
dir.mkdir();
}
File file = new File(realPath, filename + ".jpg");
multipartFile.transferTo(file);
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
}
OOSManager(filename);
vtb_photo = "https://baigekeji.oss-cn-beijing.aliyuncs.com/xiaofang/"
+ filename + ".jpg";
int count = vegetablesServices.AddVegetables(vtb_name, vtb_photo,
vtb_startdate, vtb_buydate, vtb_enddate, vtb_state, vtb_count,
vtb_content);
if (count > 0) {
filedel("C:\\Users\\Administrator\\Desktop\\" + filename + ".jpg");
Map<String, String> json = new HashMap<String, String>();
json.put("name", "成功");
JSONArray jianyiJSON = new JSONArray();
JSONArray JSONjianyi = JSONArray.fromObject(json);
jianyiJSON.add(JSONjianyi);
return jianyiJSON;
} else {
Map<String, String> json = new HashMap<String, String>();
json.put("name", "失败");
JSONArray jianyiJSON = new JSONArray();
JSONArray JSONjianyi = JSONArray.fromObject(json);
jianyiJSON.add(JSONjianyi);
return jianyiJSON;
}
}
调用的辅助方法
/**
* 阿里云OOS
* @param invitation
*/
public void OOSManager(String invitation) {
// 开始上传阿里云
String endpoint = "http://oss-cn-beijing.aliyuncs.com";
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录
// https://ram.console.aliyun.com 创建RAM账号
String accessKeyId = "************";
String accessKeySecret = "****************";
// 创建OSSClient实例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId,
accessKeySecret);
// 上传文件
ossClient.putObject("baigekeji", "xiaofang/" + invitation + ".jpg",
new File("C:/Users/Administrator/Desktop/" + invitation
+ ".jpg"));
// 关闭client
ossClient.shutdown();
}
图片随机名称的辅助方法
/**
* 时间
* @return
*/
public String GetTime() {
Calendar cal = Calendar.getInstance();// 使用日历类
String year = String.valueOf(cal.get(Calendar.YEAR));// 得到年
String month = String.valueOf(cal.get(Calendar.MONTH) + 1);// 得到月,因为从0开始的,所以要加1
String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));// 得到天
String one = String.valueOf(cal.get(Calendar.HOUR));// 得到天
String two = String.valueOf(cal.get(Calendar.MINUTE));// 得到天
String three = String.valueOf(cal.get(Calendar.SECOND));// 得到天
if (Integer.parseInt(month) < 10) {
month = "0" + month;
} else if (Integer.parseInt(day) < 10) {
day = "0" + day;
}
return year + month + day + one + two + three;
}