Explorar el Código

cuser

release_toaliyun_real
xhxu hace 5 años
padre
commit
d1f669e58e
Se han modificado 4 ficheros con 429 adiciones y 266 borrados
  1. +69
    -60
      mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java
  2. +124
    -82
      mallinkBApi/src/main/java/com/iformall/controller/UploadController.java
  3. +124
    -37
      mallinkCApi/src/main/java/com/iformall/controller/UploadController.java
  4. +112
    -87
      mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java

+ 69
- 60
mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java Ver fichero

@@ -1,7 +1,6 @@
package com.iformall.controller.sys; package com.iformall.controller.sys;


import com.iformall.annotation.SystemControllerLog; import com.iformall.annotation.SystemControllerLog;
import com.iformall.annotation.TenantIgnore;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
@@ -19,7 +18,6 @@ import org.springframework.web.multipart.MultipartFile;


import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.*;
import java.util.*; import java.util.*;
import java.util.List; import java.util.List;


@@ -30,8 +28,6 @@ public class UploadController extends BaseController {


private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());


@Autowired
private String fmUploadDir;
@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


@@ -45,19 +41,25 @@ public class UploadController extends BaseController {
@PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("上传文件") @ApiOperation("上传文件")
@SystemControllerLog(description = "文件上传") @SystemControllerLog(description = "文件上传")
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) throws Exception {
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) {
logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload");


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}
try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}


ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data;
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data;

} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
}
} }




@@ -83,12 +85,12 @@ public class UploadController extends BaseController {
} }


String fileFormat = ""; String fileFormat = "";

int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}
try { try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}

String imgFormat = ImgUtil.getImgFormat(fileFormat); String imgFormat = ImgUtil.getImgFormat(fileFormat);
if(StringUtils.isNotBlank(imgFormat)) { if(StringUtils.isNotBlank(imgFormat)) {
long maxSize = 0l; long maxSize = 0l;
@@ -116,9 +118,6 @@ public class UploadController extends BaseController {
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;


} catch (NumberFormatException ne) {
logger.error(ne.getMessage());
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
@@ -135,65 +134,75 @@ public class UploadController extends BaseController {
@PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("多文件上传") @ApiOperation("多文件上传")
@SystemControllerLog(description = "多文件上传") @SystemControllerLog(description = "多文件上传")
public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) throws Exception{
public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) {
logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload");
TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();
try {
if(files.length > 0){
ResultData data = new ResultData();
List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
for(MultipartFile multipartFile: files) {
Map<String, String> map = new HashMap<>();

map.put("key", multipartFile.getOriginalFilename());

int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());;
}


if(files.length > 0){
ResultData data = new ResultData();
List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
for(MultipartFile multipartFile: files) {
Map<String, String> map = new HashMap<>();

map.put("key", multipartFile.getOriginalFilename());

int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());;
ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());
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;


ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());

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;
}
}else{
return new ResultData();
} }
data.code = ResultData.SUCCESS;
data.data = dataList;
return data;

} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
return new ResultData();
} }


/** /**
* 内部接口-C端上传图片文件
* 内部接口-A端上传图片文件
* *
* @param multiReq * @param multiReq
* @return * @return
* @throws Exception * @throws Exception
*/ */
@PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("内部接口-C端上传图片文件")
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception{
@ApiOperation("内部接口-A端上传图片文件")
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) {
logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); logger.info("[" + getIpAddr() + "] UploadController::cimgUpload");


int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}
try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}


ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream());
return data;
ResultData data = aliyunOSS.uploadFile("aimg", fileFormat, multiReq.getInputStream());
return data;
} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
}
} }


} }

+ 124
- 82
mallinkBApi/src/main/java/com/iformall/controller/UploadController.java Ver fichero

@@ -1,6 +1,6 @@
package com.iformall.controller; package com.iformall.controller;


import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.file.aliyun.AliyunOSS; import com.iformall.file.aliyun.AliyunOSS;
@@ -11,13 +11,11 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;


import java.io.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.util.*; import java.util.*;
import java.util.List; import java.util.List;


@@ -28,36 +26,40 @@ public class UploadController extends BaseController {


private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());


@Autowired
private String fmUploadDir;

@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


/** /**
* 上传文件 * 上传文件
* *
* @param
* @param multiReq
* @return * @return
* @throws Exception * @throws Exception
*/ */
@PostMapping(value = "/awsFileUpload")
@PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("上传文件") @ApiOperation("上传文件")
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) throws Exception {
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) {
logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload");


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}
try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}

ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data;


ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data;
} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
}
} }



/** /**
* 图片上传 * 图片上传
* *
@@ -67,47 +69,54 @@ public class UploadController extends BaseController {
*/ */
@PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("上传图片") @ApiOperation("上传图片")
public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception {
public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq
,@RequestParam Map<String, String> param) {
logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload");

TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


String tempFileName = UUID.randomUUID().toString();
String fileFormat = "";

int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
long size = multiReq.getSize();
final long length = 2097152;
if (size > length) {
return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED);
} }


FileOutputStream fos = null;

String imgFormat = ImgUtil.getImgFormat(fileFormat);
if(StringUtils.isNotBlank(imgFormat)) {
String localImgFileName = fmUploadDir + tempFileName + "-1" + fileFormat;
String localNewImgFileName = fmUploadDir + tempFileName + fileFormat;
BufferedInputStream fs = null;
File localFile = new File(localImgFileName);
fos = new FileOutputStream(localFile);
fs = (BufferedInputStream) multiReq.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fs.read(buffer)) != -1) {
fos.write(buffer, 0, len);
String fileFormat = "";
try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}

String imgFormat = ImgUtil.getImgFormat(fileFormat);
if(StringUtils.isNotBlank(imgFormat)) {
long maxSize = 0l;
try {
maxSize = Long.parseLong(param.get("size"));
} catch (NumberFormatException e) {}
if(maxSize > 0l && size > maxSize*1024){
return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE);
}
BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream());
if(bufferedImage != null){
int width = 0;int hight = 0;
try {
width = Integer.parseInt(param.get("width"));
hight = Integer.parseInt(param.get("hight"));
} catch (NumberFormatException e) {}
Integer relWidth = bufferedImage.getWidth();
Integer relHeight = bufferedImage.getHeight();
if((width > 0 && width != relWidth.intValue())
|| (hight > 0 && hight != relHeight.intValue())){
return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE);
}
}
} }
fos.close();
fs.close();

File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat);
// 删除本地缓存
localFile.delete();
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile));
// 删除本地缓存
newFile.delete();
return data;
} else {
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;

} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
} }


@@ -120,42 +129,75 @@ public class UploadController extends BaseController {
*/ */
@PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("多文件上传") @ApiOperation("多文件上传")
public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) throws Exception {
public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) {
logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload");

TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();

if (files.length > 0) {
ResultData data = new ResultData();
List<Map<String, String>> dataList = new ArrayList<Map<String, String>>();
for (MultipartFile multipartFile : files) {
Map<String, String> map = new HashMap<>();

map.put("key", multipartFile.getOriginalFilename());

int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());
try {
if(files.length > 0){
ResultData data = new ResultData();
List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
for(MultipartFile multipartFile: files) {
Map<String, String> map = new HashMap<>();

map.put("key", multipartFile.getOriginalFilename());

int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());;
}

ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());

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;


ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());
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;
}
}else{
return new ResultData();
} }
data.code = ResultData.SUCCESS;
data.data = dataList;
return data;
} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
}
}


/**
* 内部接口-B端上传图片文件
*
* @param multiReq
* @return
* @throws Exception
*/
@PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("内部接口-B端上传图片文件")
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) {
logger.info("[" + getIpAddr() + "] UploadController::cimgUpload");

try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}

ResultData data = aliyunOSS.uploadFile("bimg", fileFormat, multiReq.getInputStream());
return data;
} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
return new ResultData();
} }

} }

+ 124
- 37
mallinkCApi/src/main/java/com/iformall/controller/UploadController.java Ver fichero

@@ -4,19 +4,20 @@ import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.file.aliyun.AliyunOSS; import com.iformall.file.aliyun.AliyunOSS;
import com.iformall.utils.ImgUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;


import java.io.IOException;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.util.*; import java.util.*;
import java.util.List;


@RestController @RestController
@RequestMapping(value = "/api/upload") @RequestMapping(value = "/api/upload")
@@ -28,7 +29,6 @@ public class UploadController extends BaseController {
@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;



/** /**
* 上传文件 * 上传文件
* *
@@ -43,20 +43,81 @@ public class UploadController extends BaseController {


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}

ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data;

} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
}



/**
* 图片上传
*
* @param multiReq
* @return
* @throws Exception
*/
@PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("上传图片")
public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq
,@RequestParam Map<String, String> param) {
logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload");
TenantEntity tenantEntity = getTenantInfo();

long size = multiReq.getSize();
final long length = 2097152;
if (size > length) {
return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED);
}

String fileFormat = "";
try { try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}

String imgFormat = ImgUtil.getImgFormat(fileFormat);
if(StringUtils.isNotBlank(imgFormat)) {
long maxSize = 0l;
try {
maxSize = Long.parseLong(param.get("size"));
} catch (NumberFormatException e) {}
if(maxSize > 0l && size > maxSize*1024){
return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE);
}
BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream());
if(bufferedImage != null){
int width = 0;int hight = 0;
try {
width = Integer.parseInt(param.get("width"));
hight = Integer.parseInt(param.get("hight"));
} catch (NumberFormatException e) {}
Integer relWidth = bufferedImage.getWidth();
Integer relHeight = bufferedImage.getHeight();
if((width > 0 && width != relWidth.intValue())
|| (hight > 0 && hight != relHeight.intValue())){
return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE);
}
}
}
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;
} catch (IOException e) {

} catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }

} }


/** /**
@@ -70,27 +131,26 @@ public class UploadController extends BaseController {
@ApiOperation("多文件上传") @ApiOperation("多文件上传")
public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) { public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) {
logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload");

TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();
try {
if(files.length > 0){
ResultData data = new ResultData();
List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
for(MultipartFile multipartFile: files) {
Map<String, String> map = new HashMap<>();

map.put("key", multipartFile.getOriginalFilename());

int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());;
}


if (files.length > 0) {
ResultData data = new ResultData();
List<Map<String, String>> dataList = new ArrayList<Map<String, String>>();
for (MultipartFile multipartFile : files) {
Map<String, String> map = new HashMap<>();

map.put("key", multipartFile.getOriginalFilename());

int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());
}
try {
ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());
if (data1.code == ResultData.SUCCESS) {
Map _data = (Map) data1.data;

if(data1.code == ResultData.SUCCESS) {
Map _data = (Map)data1.data;
map.put("url", (String) _data.get("url")); map.put("url", (String) _data.get("url"));
dataList.add(map); dataList.add(map);
} else { } else {
@@ -99,18 +159,45 @@ public class UploadController extends BaseController {
data.data = dataList; data.data = dataList;
return data; return data;
} }
} catch (IOException e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
data.code = ResultData.SUCCESS;
data.data = dataList;
return data;


}else{
return new ResultData();
}
} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
}
}

/**
* 内部接口-C端上传图片文件
*
* @param multiReq
* @return
* @throws Exception
*/
@PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("内部接口-C端上传图片文件")
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) {
logger.info("[" + getIpAddr() + "] UploadController::cimgUpload");

try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
} }
data.code = ResultData.SUCCESS;
data.data = dataList;
return data;


ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream());
return data;
} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
return new ResultData();
} }


} }

+ 112
- 87
mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java Ver fichero

@@ -1,6 +1,7 @@
package com.iformall.controller.sys; package com.iformall.controller.sys;



import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
@@ -15,7 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;


import java.io.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.util.*; import java.util.*;
import java.util.List; import java.util.List;


@@ -26,13 +28,9 @@ public class UploadController extends BaseController {


private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());


@Autowired
private String fmUploadDir;

@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;



/** /**
* 上传文件 * 上传文件
* *
@@ -42,21 +40,29 @@ public class UploadController extends BaseController {
*/ */
@PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("上传文件") @ApiOperation("上传文件")
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) throws Exception {
@SystemControllerLog(description = "文件上传")
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) {
logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload");


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}
try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}


ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data;
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data;

} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
}
} }



/** /**
* 图片上传 * 图片上传
* *
@@ -66,46 +72,55 @@ public class UploadController extends BaseController {
*/ */
@PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("上传图片") @ApiOperation("上传图片")
public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception{
@SystemControllerLog(description = "上传图片")
public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq
,@RequestParam Map<String, String> param) {
logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload");

TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


String tempFileName = UUID.randomUUID().toString();
String fileFormat = "";
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
long size = multiReq.getSize();
final long length = 2097152;
if (size > length) {
return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED);
} }


FileOutputStream fos = null;
String imgFormat = ImgUtil.getImgFormat(fileFormat);
if(StringUtils.isNotBlank(imgFormat)) {
String localImgFileName = fmUploadDir + tempFileName + "-1" + fileFormat;
String localNewImgFileName = fmUploadDir + tempFileName + fileFormat;
BufferedInputStream fs = null;
File localFile = new File(localImgFileName);
fos = new FileOutputStream(localFile);
fs = (BufferedInputStream) multiReq.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fs.read(buffer)) != -1) {
fos.write(buffer, 0, len);
String fileFormat = "";
try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
} }
fos.close();
fs.close();


File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat);
// 删除本地缓存
localFile.delete();

ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile));
// 删除本地缓存
newFile.delete();
return data;
} else {
String imgFormat = ImgUtil.getImgFormat(fileFormat);
if(StringUtils.isNotBlank(imgFormat)) {
long maxSize = 0l;
try {
maxSize = Long.parseLong(param.get("size"));
} catch (NumberFormatException e) {}
if(maxSize > 0l && size > maxSize*1024){
return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE);
}
BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream());
if(bufferedImage != null){
int width = 0;int hight = 0;
try {
width = Integer.parseInt(param.get("width"));
hight = Integer.parseInt(param.get("hight"));
} catch (NumberFormatException e) {}
Integer relWidth = bufferedImage.getWidth();
Integer relHeight = bufferedImage.getHeight();
if((width > 0 && width != relWidth.intValue())
|| (hight > 0 && hight != relHeight.intValue())){
return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE);
}
}
}
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;

} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
} }


@@ -118,66 +133,76 @@ public class UploadController extends BaseController {
*/ */
@PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("多文件上传") @ApiOperation("多文件上传")
public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) throws Exception {
@SystemControllerLog(description = "多文件上传")
public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) {
logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload");

TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();

if(files.length > 0){
ResultData data = new ResultData();
List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
for(MultipartFile multipartFile: files) {
Map<String, String> map = new HashMap<>();

map.put("key", multipartFile.getOriginalFilename());

int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());
try {
if(files.length > 0){
ResultData data = new ResultData();
List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
for(MultipartFile multipartFile: files) {
Map<String, String> map = new HashMap<>();

map.put("key", multipartFile.getOriginalFilename());

int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());;
}

ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());

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;


ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());
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;
}
}else{
return new ResultData();
} }
data.code = ResultData.SUCCESS;
data.data = dataList;
return data;

} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
return new ResultData();
} }


/** /**
* C端上传图片文件
* 内部接口-sys端上传图片文件
* *
* @param multiReq * @param multiReq
* @return * @return
* @throws Exception * @throws Exception
*/ */
@PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ApiOperation("C端上传图片文件")
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception {
@ApiOperation("内部接口-sys端上传图片文件")
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) {
logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); logger.info("[" + getIpAddr() + "] UploadController::cimgUpload");


int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}
try {
int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = "";
if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
}


ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream());
return data;
ResultData data = aliyunOSS.uploadFile("sysimg", fileFormat, multiReq.getInputStream());
return data;
} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
}
} }



} }

Cargando…
Cancelar
Guardar