|
@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.SneakyThrows;
|
|
|
+import org.apache.commons.fileupload.disk.DiskFileItem;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
|
|
import org.springblade.common.constant.CommonConstant;
|
|
@@ -45,9 +46,11 @@ import org.springblade.resource.vo.MultipartFileParam;
|
|
|
import org.springblade.resource.vo.NewBladeFile;
|
|
|
import org.springblade.system.cache.ParamCache;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.http.MediaType;
|
|
|
import org.springframework.util.DigestUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
|
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@@ -204,7 +207,7 @@ public class LargeFileEndpoint {
|
|
|
// 获取文件路径
|
|
|
/**Windows文件路径要加在哪个盘**/
|
|
|
// String filePath = "D:/www/wwwroot/Users/hongchuangyanfa/Desktop/Desktop/ceshi";
|
|
|
- String filePath = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL)+"largeFile/";
|
|
|
+ String filePath ="D:" +ParamCache.getValue(CommonConstant.SYS_LOCAL_URL)+"largeFile/";
|
|
|
// 创建文件夹
|
|
|
// getAbsoluteFile(filePath, fileName);
|
|
|
// new File(filePath, fileName);
|
|
@@ -266,19 +269,34 @@ public class LargeFileEndpoint {
|
|
|
renameFile(file,param.getFilename());
|
|
|
FileInputStream inputStream = new FileInputStream(filePath + param.getFilename());
|
|
|
// 上传oss
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ System.out.println("kaishi===================================="+l);
|
|
|
BladeFile bladeFile = ossBuilder.template().putFile(param.getFilename(),inputStream);
|
|
|
+ long l1 = System.currentTimeMillis();
|
|
|
+ System.out.println("jieshu===================================="+(l1-l));
|
|
|
|
|
|
+ File file1 = new File(filePath + param.getFilename());
|
|
|
|
|
|
NewBladeFile newBladeFile = new NewBladeFile();
|
|
|
-// if(param.getFilename().contains("pdf")){
|
|
|
-// PDDocument document = PDDocument.load(inputStream);
|
|
|
-// //获取文件页数
|
|
|
-// newBladeFile.setPage(document.getPages().getCount());
|
|
|
-// //pdf的路径就是文件上传的路径
|
|
|
-// newBladeFile.setPdfUrl(bladeFile.getLink());
|
|
|
-// }
|
|
|
+ if(param.getFilename().contains("pdf")){
|
|
|
+ FileInputStream inputStream1 = new FileInputStream(filePath + param.getFilename());
|
|
|
+ PDDocument document = PDDocument.load(inputStream1);
|
|
|
+ //获取文件页数
|
|
|
+ newBladeFile.setPage(document.getPages().getCount());
|
|
|
+ //pdf的路径就是文件上传的路径
|
|
|
+ newBladeFile.setPdfUrl(bladeFile.getLink());
|
|
|
+ }else if(param.getFilename().contains("xlsx") || param.getFilename().contains("xls")){
|
|
|
+ MultipartFile multipartFile = getMultipartFile(file1);
|
|
|
+ newBladeFile = this.commonFileClient.excelToPdf(multipartFile);
|
|
|
+ }else if(param.getFilename().contains("docx")){
|
|
|
+ MultipartFile multipartFile = getMultipartFile(file1);
|
|
|
+ newBladeFile = this.commonFileClient.wordToPdf(multipartFile);
|
|
|
+ }else if(param.getFilename().contains("png") || param.getFilename().contains("jpg")){
|
|
|
+ MultipartFile multipartFile = getMultipartFile(file1);
|
|
|
+ newBladeFile = this.commonFileClient.pngOrJpgToPdf(multipartFile);
|
|
|
+ }
|
|
|
BeanUtils.copyProperties(bladeFile, newBladeFile);
|
|
|
- File file1 = new File(filePath + param.getFilename());
|
|
|
+
|
|
|
//删除本地文件
|
|
|
file1.delete();
|
|
|
iLargeFileService.updateLargeFileDeleted(param.getIdentifier());
|
|
@@ -303,6 +321,22 @@ public class LargeFileEndpoint {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ *file 转 MultipartFile
|
|
|
+ * **/
|
|
|
+ public static MultipartFile getMultipartFile(File file){
|
|
|
+ DiskFileItem item = new DiskFileItem("file",
|
|
|
+ MediaType.MULTIPART_FORM_DATA_VALUE,
|
|
|
+ true,
|
|
|
+ file.getName(),(int) file.length(),file.getParentFile());
|
|
|
+ try {
|
|
|
+ OutputStream os = item.getOutputStream();
|
|
|
+ os.write(FileUtils.readFileToByteArray(file));
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return new CommonsMultipartFile(item);
|
|
|
+ }
|
|
|
/**
|
|
|
* 构建上传目录和文件
|
|
|
*/
|
|
@@ -316,7 +350,7 @@ public class LargeFileEndpoint {
|
|
|
* 构建上传完整目录
|
|
|
*/
|
|
|
private String buildUploadDir() {
|
|
|
- String fullDir =ParamCache.getValue(CommonConstant.SYS_LOCAL_URL)+"largeFile/";
|
|
|
+ String fullDir ="D:" +ParamCache.getValue(CommonConstant.SYS_LOCAL_URL)+"largeFile/";
|
|
|
File dir = new File(fullDir);
|
|
|
if (!dir.exists()) {
|
|
|
dir.mkdirs();
|