提交 ca5c6005 authored 作者: 宋文杰's avatar 宋文杰

fix(upload): 新增图片上传api

上级 64336db5
...@@ -39,7 +39,7 @@ public class FileUploadController { ...@@ -39,7 +39,7 @@ public class FileUploadController {
* @return R * @return R
*/ */
@PostMapping("/images") @PostMapping("/images")
public R uploadImage(HttpServletRequest request) throws IOException { public R uploadImages(HttpServletRequest request) throws IOException {
Map<String, String> resultMap = new HashMap<>(); Map<String, String> resultMap = new HashMap<>();
//将当前上下文初始化给 CommonsMultipartResolver (多部分解析器) //将当前上下文初始化给 CommonsMultipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
...@@ -143,13 +143,46 @@ public class FileUploadController { ...@@ -143,13 +143,46 @@ public class FileUploadController {
file.getInputStream(), file.getSize(), extension, null); file.getInputStream(), file.getSize(), extension, null);
return new UpFileResponse(file.getOriginalFilename(),storePath.getFullPath()); return new UpFileResponse(file.getOriginalFilename(),storePath.getFullPath());
// resultMap.put(name, storePath.getFullPath());
} }
} }
// return new R<>(resultMap);
} }
// System.out.println("没有上传文件");
// return new R(CommonConstants.FAIL, "没有上传文件");
return null; return null;
} }
@PostMapping("/image")
public UpFileResponse uploadImage(HttpServletRequest request) throws IOException {
Map<String, String> resultMap = new HashMap<>();
//将当前上下文初始化给 CommonsMultipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//检查form中是否有enctype="multipart/form-data"
if (multipartResolver.isMultipart(request)) {
//将request变成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
List<String> supportFileTypes = Arrays.asList("JPG", "JPEG", "PNG", "GIF", "BMP", "WBMP");
//获取multiRequest 中所有的文件名
Iterator iter = multiRequest.getFileNames();
while (iter.hasNext()) {
String name = iter.next().toString();
//一次遍历所有文件
MultipartFile file = multiRequest.getFile(name);
if (file != null) {
String extension = FilenameUtils.getExtension(file.getOriginalFilename());
if (StringUtils.isBlank(extension)) {
throw new UploadFileException("上传文件类型不支持");
}
if (!supportFileTypes.contains(extension.toUpperCase())) {
throw new UploadFileException("上传文件类型不支持");
}
StorePath storePath = this.storageClient.uploadFile(
file.getInputStream(), file.getSize(), extension, null);
return new UpFileResponse(file.getOriginalFilename(),storePath.getFullPath());
}
}
}
return null;
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论