|
|
@@ -1,203 +0,0 @@ |
|
|
|
package com.iformall.controller; |
|
|
|
|
|
|
|
import com.iformall.common.ErrorCode; |
|
|
|
import com.iformall.common.ResultData; |
|
|
|
import com.iformall.domain.po.base.TenantEntity; |
|
|
|
import com.iformall.file.aliyun.AliyunOSS; |
|
|
|
import com.iformall.utils.ImgUtil; |
|
|
|
import io.swagger.annotations.Api; |
|
|
|
import io.swagger.annotations.ApiOperation; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
import javax.imageio.ImageIO; |
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
import java.util.*; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
@RestController |
|
|
|
@RequestMapping(value = "/api/upload") |
|
|
|
@Api(description = "文件上传接口") |
|
|
|
public class UploadController extends BaseController { |
|
|
|
|
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass()); |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private AliyunOSS aliyunOSS; |
|
|
|
|
|
|
|
/** |
|
|
|
* 上传文件 |
|
|
|
* |
|
|
|
* @param multiReq |
|
|
|
* @return |
|
|
|
* @throws Exception |
|
|
|
*/ |
|
|
|
@PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") |
|
|
|
@ApiOperation("上传文件") |
|
|
|
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { |
|
|
|
logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); |
|
|
|
|
|
|
|
TenantEntity tenantEntity = getTenantInfo(); |
|
|
|
|
|
|
|
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 * 2; |
|
|
|
if (size > length) { |
|
|
|
return new ResultData(ErrorCode.PICTURE_FOUR_SIZE_EXCEED); |
|
|
|
} |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
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 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"); |
|
|
|
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());; |
|
|
|
} |
|
|
|
|
|
|
|
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; |
|
|
|
|
|
|
|
}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()); |
|
|
|
} |
|
|
|
|
|
|
|
ResultData data = aliyunOSS.uploadFile("builtin", fileFormat, multiReq.getInputStream()); |
|
|
|
return data; |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error(e.getMessage()); |
|
|
|
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |