@PostMapping(value = "/save",produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ApiOperation(value = "新增商品",notes = "save") public JsonData save(@RequestPart("good") String good, @RequestPart("file") MultipartFile file){ return igoodservice.save(good,file); }
@Override public JsonData save(String good, MultipartFile file) { User user = LoginInterceptor.threadLocal.get(); Good good1 = JSON.parseObject(good, Good.class); // 判断上传的文件是否为空 if (file.isEmpty()) { throw new MyException(400, "上传的图片不允许为空"); } // 判断上传的文件大小是否超出限制值 if (file.getSize() > AVATAR_MAX_SIZE) { // getSize():返回文件的大小,以字节为单位 throw new MyException(400,"不允许上传超过" + (AVATAR_MAX_SIZE / 1024) + "KB的图片文件"); } // 判断上传的文件类型是否超出限制 String contentType = file.getContentType(); if (!AVATAR_TYPES.contains(contentType)) { throw new MyException(400,"不支持使用该类型的文件作为头像,允许的文件类型:" + AVATAR_TYPES); } //保存路径 String parent = "D:/images/shop/"; // 保存图片文件的文件夹 File dir = new File(parent); if (!dir.exists()) { dir.mkdirs(); } //图片后缀 String suffix = ""; String originalFilename = file.getOriginalFilename(); int beginIndex = originalFilename.lastIndexOf("."); if (beginIndex > 0) { suffix = originalFilename.substring(beginIndex); } // 保存的图片文件的文件名 String fileName = CommonUtil.getStringNumRandom(12)+suffix; // 创建文件对象,表示保存的头像文件 File dest = new File(dir, fileName); // 执行保存头像文件 try { file.transferTo(dest); } catch (IllegalStateException e) { // 抛出异常 throw new MyException(400,"图片状态异常,可能文件已被移动或删除"); } catch (IOException e) { // 抛出异常 throw new MyException(400,"上传图片时读写错误,请稍后重新尝试"); } good1.setPhoto(parent+fileName); good1.setUId(user.getId()); good1.setState(0); good1.setSales(0); good1.setState(0); dao.insert(good1); return JsonData.buildMsg("新增成功!"); }