From 13969628f8c7f4f5871a7dd8eb3b78dd2e2e62da Mon Sep 17 00:00:00 2001 From: chenjf <1004990705@qq.com> Date: Mon, 14 Aug 2023 19:17:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BF=9C=E7=A8=8Burl?= =?UTF-8?q?=E5=92=8Cbase64=E8=BD=ACpdf=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/controller/FileDetailController.java | 18 ++++++++++++++++ .../file/service/IlsFileDetailService.java | 18 ++++++++++++++++ .../impl/IlsFileDetailServiceImpl.java | 21 +++++++++++++++---- 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/ils/file/controller/FileDetailController.java b/src/main/java/org/ils/file/controller/FileDetailController.java index 4be36b2..7aa89c4 100644 --- a/src/main/java/org/ils/file/controller/FileDetailController.java +++ b/src/main/java/org/ils/file/controller/FileDetailController.java @@ -79,4 +79,22 @@ public class FileDetailController { ilsFileDetailService.downloadByUrl(url, response); } + /** + * 根据url和文件后缀上传文件 + */ + @ApiOperation("根据url和文件后缀上传文件") + @RequestMapping(value = "uploadByUrl", method = RequestMethod.POST) + public FileInfo uploadByUrl(String url, String contentType, HttpServletResponse response) throws IOException { + return ilsFileDetailService.uploadByUrl(url, contentType, response); + } + + /** + * 根据base64内容和文件后缀上传文件 + */ + @ApiOperation("根据url和文件后缀上传文件") + @RequestMapping(value = "uploadByBase64", method = RequestMethod.POST) + public FileInfo uploadByBase64(String base64, String contentType, HttpServletResponse response) throws IOException { + return ilsFileDetailService.uploadByBase64(base64, contentType, response); + } + } diff --git a/src/main/java/org/ils/file/service/IlsFileDetailService.java b/src/main/java/org/ils/file/service/IlsFileDetailService.java index e58716d..96a9ce4 100644 --- a/src/main/java/org/ils/file/service/IlsFileDetailService.java +++ b/src/main/java/org/ils/file/service/IlsFileDetailService.java @@ -4,6 +4,7 @@ import cn.xuyanwu.spring.file.storage.FileInfo; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.FileNotFoundException; import java.io.IOException; /** @@ -37,4 +38,21 @@ public interface IlsFileDetailService { * @param url */ public void downloadByUrl(String url, HttpServletResponse response) throws IOException; + + + /** + * 根据url文件流和文件后缀上传文件 + * @param url + * @param contentType + */ + public FileInfo uploadByUrl(String url, String contentType, HttpServletResponse response) throws FileNotFoundException; + + + /** + * 根据base64内容和文件后缀上传文件 + * @param base64 + * @param contentType + */ + public FileInfo uploadByBase64(String base64, String contentType, HttpServletResponse response) throws FileNotFoundException; + } diff --git a/src/main/java/org/ils/file/service/impl/IlsFileDetailServiceImpl.java b/src/main/java/org/ils/file/service/impl/IlsFileDetailServiceImpl.java index 267f324..f3c4c9a 100644 --- a/src/main/java/org/ils/file/service/impl/IlsFileDetailServiceImpl.java +++ b/src/main/java/org/ils/file/service/impl/IlsFileDetailServiceImpl.java @@ -1,5 +1,6 @@ package org.ils.file.service.impl; +import cn.hutool.core.io.FileUtil; import cn.xuyanwu.spring.file.storage.Downloader; import cn.xuyanwu.spring.file.storage.FileInfo; import cn.xuyanwu.spring.file.storage.FileStorageService; @@ -11,10 +12,8 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import java.io.BufferedOutputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; +import java.util.Base64; /** @@ -25,6 +24,8 @@ import java.io.OutputStream; @Slf4j @Service public class IlsFileDetailServiceImpl implements IlsFileDetailService { + + private static final String SPLIT_STR = "."; @Autowired private FileStorageService fileStorageService; @@ -86,4 +87,16 @@ public class IlsFileDetailServiceImpl implements IlsFileDetailService { toClient.close(); } + @Override + public FileInfo uploadByUrl(String url, String contentType, HttpServletResponse response) throws FileNotFoundException { + FileInfo fileInfo = fileStorageService.of(url).setOriginalFilename(System.currentTimeMillis() + SPLIT_STR + contentType).upload(); + return fileInfo; + } + + @Override + public FileInfo uploadByBase64(String base64, String contentType, HttpServletResponse response) throws FileNotFoundException { + FileInfo fileInfo = fileStorageService.of(Base64.getDecoder().decode(base64)).setOriginalFilename(System.currentTimeMillis() + SPLIT_STR + contentType).upload(); + return fileInfo; + } + }