Просмотр исходного кода

[多文件上传][新增]:多文件上传支持

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
99d07cc375
1 измененных файлов: 56 добавлений и 63 удалений
  1. +56
    -63
      mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java

+ 56
- 63
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<String, String> 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<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
for(MultipartFile multipartFile: files) {
Map<String, String> 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端上传图片文件
*


Загрузка…
Отмена
Сохранить