支持文件上传

This commit is contained in:
tanghc
2019-05-14 19:27:16 +08:00
parent 4e842f9318
commit 6a4072a6c7
32 changed files with 420 additions and 82 deletions

View File

@@ -26,7 +26,7 @@
<dependency>
<groupId>com.gitee.sop</groupId>
<artifactId>sop-service-common</artifactId>
<version>1.7.2-SNAPSHOT</version>
<version>1.8.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>

View File

@@ -23,7 +23,7 @@
<dependency>
<groupId>com.gitee.sop</groupId>
<artifactId>sop-service-common</artifactId>
<version>1.7.2-SNAPSHOT</version>
<version>1.8.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.gitee.sop</groupId>

View File

@@ -29,7 +29,7 @@
<dependency>
<groupId>com.gitee.sop</groupId>
<artifactId>sop-service-common</artifactId>
<version>1.7.2-SNAPSHOT</version>
<version>1.8.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>

View File

@@ -20,7 +20,7 @@
<dependency>
<groupId>com.gitee.sop</groupId>
<artifactId>sop-service-common</artifactId>
<version>1.7.2-SNAPSHOT</version>
<version>1.8.0-SNAPSHOT</version>
</dependency>
<!-- eureka 服务发现 -->
<dependency>

View File

@@ -23,7 +23,7 @@
<dependency>
<groupId>com.gitee.sop</groupId>
<artifactId>sop-service-common</artifactId>
<version>1.7.2-SNAPSHOT</version>
<version>1.8.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.gitee.sop</groupId>

View File

@@ -0,0 +1,56 @@
package com.gitee.sop.storyweb.controller;
import com.gitee.sop.servercommon.annotation.ApiMapping;
import com.gitee.sop.storyweb.controller.param.FileUploadParam;
import com.gitee.sop.storyweb.vo.FileUploadVO;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.IOUtils;
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.IOException;
import java.util.Map;
/**
* 演示文件上传
* @author tanghc
*/
@RestController
public class FileUploadDemoController {
/**
* 接收客户端上传的文件,然后把文件信息返回给客户端
* @param param
* @param request
* @return
*/
@ApiMapping(value = "demo.file.upload", ignoreValidate = true)
public FileUploadVO file(FileUploadParam param, HttpServletRequest request) {
System.out.println(param.getRemark());
FileUploadVO vo = new FileUploadVO();
//检查form中是否有enctype="multipart/form-data"
if (ServletFileUpload.isMultipartContent(request)) {
//将request变成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multiRequest.getFileMap();
fileMap.entrySet()
.stream()
.forEach(entry->{
MultipartFile multipartFile = entry.getValue();
try {
String fileName = multipartFile.getOriginalFilename();
long size = multipartFile.getSize();
String fileContent = IOUtils.toString(multipartFile.getInputStream(), "UTF-8");
FileUploadVO.FileMeta fileMeta = new FileUploadVO.FileMeta(fileName, size, fileContent);
vo.getFiles().add(fileMeta);
System.out.println(fileContent);
} catch (IOException e) {
e.printStackTrace();
}
});
}
return vo;
}
}

View File

@@ -0,0 +1,11 @@
package com.gitee.sop.storyweb.controller.param;
import lombok.Data;
/**
* @author tanghc
*/
@Data
public class FileUploadParam {
private String remark;
}

View File

@@ -0,0 +1,32 @@
package com.gitee.sop.storyweb.vo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author tanghc
*/
@Data
public class FileUploadVO {
private List<FileMeta> files = new ArrayList();
@Data
public static class FileMeta {
public FileMeta(String filename, long size, String content) {
this.filename = filename;
this.size = size;
this.content = content;
}
public FileMeta() {
}
private String filename;
private long size;
private String content;
}
}