控制器接收小程序上传的图片
@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; }