From 65a9382e2ae40008446bcf99619e4763457dc0e2 Mon Sep 17 00:00:00 2001 From: "jinguo24@163.com" Date: Wed, 8 Aug 2018 22:57:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/simple/controller/HomeController.java | 8 +- .../simple/controller/UploadController.java | 120 +++++++++++------- .../src/main/resources/application-dev.yml | 3 + 3 files changed, 80 insertions(+), 51 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/simple/controller/HomeController.java b/mallinkAdmin/src/main/java/com/simple/controller/HomeController.java index 3d18cdfdd..f98d2fc75 100644 --- a/mallinkAdmin/src/main/java/com/simple/controller/HomeController.java +++ b/mallinkAdmin/src/main/java/com/simple/controller/HomeController.java @@ -38,10 +38,10 @@ public class HomeController { @Autowired private MallPermissionService sysPermissionService; - @GetMapping("login") - public ResultData login() { - return new ResultData(Result.UNLOGIN, "用户未登录"); - } +// @GetMapping("login") +// public ResultData login() { +// return new ResultData(Result.UNLOGIN, "用户未登录"); +// } @ApiOperation("登录") @PostMapping("/doLogin") diff --git a/mallinkAdmin/src/main/java/com/simple/controller/UploadController.java b/mallinkAdmin/src/main/java/com/simple/controller/UploadController.java index 535b00408..6ef4d2605 100644 --- a/mallinkAdmin/src/main/java/com/simple/controller/UploadController.java +++ b/mallinkAdmin/src/main/java/com/simple/controller/UploadController.java @@ -1,25 +1,27 @@ package com.simple.controller; -import com.simple.common.ResultData; -import com.simple.utils.Constant; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.util.MultiValueMap; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import javax.servlet.http.HttpServletRequest; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.util.*; +import com.simple.common.ResultData; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; @RestController @RequestMapping(value = "upload") @@ -27,6 +29,12 @@ import java.util.*; public class UploadController { private final Logger logger = LoggerFactory.getLogger(UploadController.class); + + @Value("${fileUpload.path}") + private String filePath; + + @Value("${fileUpload.server}") + private String server; /** * 上传文件 @@ -35,40 +43,58 @@ public class UploadController { * @return * @throws Exception */ - @RequestMapping(value = "/fileUpload", method = RequestMethod.POST) - @ResponseBody + @PostMapping(value = "/fileUpload", consumes="multipart/*" + ,headers="content-type=multipart/form-data" ) @ApiOperation("上传文件") - public ResultData fileUpload(HttpServletRequest request) { - MultipartHttpServletRequest params=((MultipartHttpServletRequest) request); - MultiValueMap iter = params.getMultiFileMap(); - BufferedOutputStream stream = null; - ArrayList fileNameArray = new ArrayList(); - for (Map.Entry> entry : iter.entrySet()) { - //取得上传文件 - List files = params.getFiles(entry.getKey()); - for(MultipartFile file: files) { - if (!file.isEmpty()) { - String fileName = UUID.randomUUID().toString() + "_" + file.getOriginalFilename(); - String filePath = Constant.fileDirectory + File.separator + fileName; - try { - byte[] bytes = file.getBytes(); - stream = new BufferedOutputStream(new FileOutputStream(new File(filePath))); - stream.write(bytes); - stream.close(); - fileNameArray.add(fileName); - } catch (Exception e) { - stream = null; - logger.error(e.getMessage()); - return new ResultData(500, e.getMessage()); - } - } else { - logger.error("You failed to upload " + file.getOriginalFilename() + "| size=" + file.getSize() + " because the file was empty."); - return new ResultData(404, "You failed to upload " + file.getOriginalFilename() + " because the file was empty."); - } - } - } - Map map = new HashMap(); - map.put("imgarray", fileNameArray); - return new ResultData(200, "上传成功", map); + public ResultData fileUpload(@RequestParam("file") MultipartFile multiReq + ) { + ResultData data = new ResultData(); + FileOutputStream fos=null; + FileInputStream 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=(FileInputStream) 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("imgarray", server+"/"+fileName); + data.data=map; + } catch (Exception e) { + e.printStackTrace(); + data.code=ResultData.ERROR; + }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; } + + } diff --git a/mallinkAdmin/src/main/resources/application-dev.yml b/mallinkAdmin/src/main/resources/application-dev.yml index a5497f9e7..f32db38e0 100644 --- a/mallinkAdmin/src/main/resources/application-dev.yml +++ b/mallinkAdmin/src/main/resources/application-dev.yml @@ -35,6 +35,9 @@ spring: max-idle: 8 max-wait: -1 min-idle: 0 +fileUpload: + path: /home/test/images + server: http://202.165.179.86:8081/images logging: level: