From 99d07cc37544cae10a03e97fd78dc936bd11d6f1 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 1 Apr 2019 14:53:50 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=A4=9A=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0]?= =?UTF-8?q?[=E6=96=B0=E5=A2=9E]:=E5=A4=9A=E6=96=87=E4=BB=B6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/controller/UploadController.java | 119 +++++++++--------- 1 file changed, 56 insertions(+), 63 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java b/mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java index 063cc2f1f..bc58b1d06 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java @@ -28,9 +28,7 @@ import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; +import java.util.*; @RestController @RequestMapping(value = "upload") @@ -44,66 +42,6 @@ public class UploadController extends BaseController { private AmazonS3 s3 = null; - /* - @Value("${fileUpload.path}") - private String filePath; - - @Value("${fileUpload.server}") - private String server; - - @PostMapping(value = "/fileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") - @ApiOperation("上传文件") - public ResultData fileUpload(@RequestParam("file") MultipartFile multiReq) { - ResultData data = new ResultData(); - FileOutputStream fos = null; - BufferedInputStream fs = null; - try { - File targetFile = new File(filePath); - if (!targetFile.exists()) { - targetFile.mkdirs(); - } - String fileName = UUID.randomUUID().toString(); - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - fileName = fileName + multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); - fos = new FileOutputStream(new File(filePath + File.separator + fileName)); - fs = (BufferedInputStream) multiReq.getInputStream(); - byte[] buffer = new byte[1024]; - int len = 0; - while ((len = fs.read(buffer)) != -1) { - fos.write(buffer, 0, len); - } - fos.close(); - fs.close(); - data.code = ResultData.SUCCESS; - Map map = new HashMap<>(); - map.put("url", server + "/" + fileName); - data.data = map; - } catch (Exception e) { - e.printStackTrace(); - data.code = ResultData.ERROR; - data.message = "上传失败"; - } finally { - if (fos != null) { - try { - fos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - if (fs != null) { - try { - fs.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - - } - return data; - } - */ - private ResultData awsUpload(MultipartFile multiReq, ObjectMetadata metadata, String fileName) { ResultData data = new ResultData(); try { @@ -193,6 +131,61 @@ public class UploadController extends BaseController { return data; } + /** + * 多文件上传 + * + * @param files + * @return + * @throws Exception + */ + @PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") + @ApiOperation("多文件上传") + public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) { + logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); + + if(files.length > 0){ + ResultData data = new ResultData(); + List> dataList = new ArrayList>(); + for(MultipartFile multipartFile: files) { + Map map = new HashMap<>(); + + ObjectMetadata metadata = new ObjectMetadata(); + metadata.setContentType(multipartFile.getContentType()); + metadata.setContentLength(multipartFile.getSize()); + + FileOutputStream fos = null; + BufferedInputStream fs = null; + + map.put("key", multipartFile.getOriginalFilename()); + + String fileName = UUID.randomUUID().toString(); + int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + if (dot >= 0) { + fileName = getTenantId() + "/" + fileName + multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); + } else { + fileName = getTenantId() + "/" + fileName; + } + + ResultData data1 = awsUpload(multipartFile, metadata, fileName); + if(data1.code == ResultData.SUCCESS) { + Map _data = (Map)data1.data; + map.put("url", (String) _data.get("url")); + dataList.add(map); + } else { + // 部分成功 + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; + } + } + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; + + } + return new ResultData(); + } + /** * C端上传图片文件 *