Parcourir la source

文件上传成功

yq il y a 3 ans
Parent
commit
b812f469fe

+ 1 - 0
src/main/java/com/usky/dxtop/DxtopApplication.java

@@ -14,4 +14,5 @@ public class DxtopApplication {
         SpringApplication.run(DxtopApplication.class, args);
     }
 
+
 }

+ 1 - 1
src/main/java/com/usky/dxtop/common/config/DxConfig.java

@@ -111,6 +111,6 @@ public class DxConfig
      */
     public static String getUploadPath()
     {
-        return getProfile() + "/upload";
+        return getProfile();
     }
 }

+ 6 - 8
src/main/java/com/usky/dxtop/common/utils/file/FileUploadUtils.java

@@ -1,13 +1,12 @@
 package com.usky.dxtop.common.utils.file;
 
 import com.usky.dxtop.common.config.DxConfig;
-import com.usky.dxtop.common.constant.Constants;
 import com.usky.dxtop.common.exception.file.FileNameLengthLimitExceededException;
 import com.usky.dxtop.common.exception.file.FileSizeLimitExceededException;
 import com.usky.dxtop.common.exception.file.InvalidExtensionException;
-import com.usky.dxtop.common.utils.DateUtils;
 import com.usky.dxtop.common.utils.StringUtils;
 import com.usky.dxtop.common.utils.uuid.IdUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -20,6 +19,7 @@ import java.io.IOException;
  *
  * @author yq
  */
+@Slf4j
 public class FileUploadUtils
 {
     /**
@@ -113,7 +113,8 @@ public class FileUploadUtils
         String fileName = extractFilename(file);
 
         File desc = getAbsoluteFile(baseDir, fileName);
-        file.transferTo(desc);
+//        file.transferTo(desc);
+//        FileUtils.copyInputStreamToFile(file.getInputStream(),desc);
         String pathFileName = getPathFileName(baseDir, fileName);
         return pathFileName;
     }
@@ -125,7 +126,7 @@ public class FileUploadUtils
     {
         String fileName = file.getOriginalFilename();
         String extension = getExtension(file);
-        fileName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension;
+        fileName = IdUtils.fastUUID() + "." + extension;
         return fileName;
     }
 
@@ -145,10 +146,7 @@ public class FileUploadUtils
 
     private static final String getPathFileName(String uploadDir, String fileName) throws IOException
     {
-        int dirLastIndex = DxConfig.getProfile().length() + 1;
-        String currentDir = StringUtils.substring(uploadDir, dirLastIndex);
-        String pathFileName = Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName;
-        return pathFileName;
+        return String.format("%s/%s",uploadDir,fileName);
     }
 
     /**

+ 2 - 1
src/main/java/com/usky/dxtop/common/utils/file/FileUtils.java

@@ -244,7 +244,7 @@ public class FileUtils
      * @param remoteFilePath 远程文件路径
      * @param localFilePath 本地文件路径(带文件名)
      */
-    public static void downloadFile(String remoteFilePath, String localFilePath)
+    public static File downloadFile(String remoteFilePath, String localFilePath)
     {
         URL urlfile = null;
         HttpURLConnection httpUrl = null;
@@ -284,5 +284,6 @@ public class FileUtils
                 e.printStackTrace();
             }
         }
+        return f;
     }
 }

+ 2 - 1
src/main/java/com/usky/dxtop/model/SysFile.java

@@ -3,6 +3,7 @@ package com.usky.dxtop.model;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -99,7 +100,7 @@ public class SysFile implements Serializable {
      */
     private Date updateTime;
 
-
+    @JsonIgnore
     @TableField(exist = false)
     private List<MultipartFile> files;
 

+ 12 - 6
src/main/java/com/usky/dxtop/service/impl/SysFileServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
 import java.util.Date;
 import java.util.List;
 
@@ -45,7 +46,7 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileMapper, SysFile> impl
 
     @Override
     public List<SysFile> addFile(SysFile sysFile) {
-        if (StringUtils.isNotBlank(sysFile.getUploadType())) {
+        if (StringUtils.isBlank(sysFile.getUploadType())) {
             sysFile.setUploadType(FILE);
         }
         sysFile.setSuccess(true);
@@ -70,12 +71,13 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileMapper, SysFile> impl
             sysFile.setOriName(m.getOriginalFilename());
             sysFile.setFileSize(Integer.parseInt(String.valueOf(m.getSize())));
             sysFile.setFileType(m.getContentType());
-            sysFile.setUrl(String.format("%s%s", filePath, fileName));
+            sysFile.setUrl(filePath);
+            sysFile.setUrl(fileName);
+            this.save(sysFile);
         } catch (Exception e) {
             sysFile.setSuccess(false);
             sysFile.setMessage(e.getMessage());
         }
-        this.save(sysFile);
         return sysFile;
     }
 
@@ -83,13 +85,17 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileMapper, SysFile> impl
     public SysFile addExternalLink(String url, SysFile sysFile) {
         try {
             String filePath = DxConfig.getUploadPath();
-            String format = String.format("%s%s.%s", filePath, System.currentTimeMillis() + "", FileTypeUtils.getFileType(url));
-            FileUtils.downloadFile(url,format);
+            String format = String.format("%s/%s.%s", filePath, System.currentTimeMillis() + "", FileTypeUtils.getFileType(url));
+            File file = FileUtils.downloadFile(url, format);
+            sysFile.setOriName(url.substring(url.lastIndexOf("/")+1));
+            sysFile.setFileSize(Integer.parseInt(String.valueOf(file.length())));
+            sysFile.setFileType(FileTypeUtils.getFileType(file));
+            sysFile.setUrl(format);
+            this.save(sysFile);
         }catch (Exception e){
             sysFile.setSuccess(false);
             sysFile.setMessage(e.getMessage());
         }
-        this.save(sysFile);
         return sysFile;
     }
 

+ 6 - 2
src/main/resources/application-dev.properties

@@ -3,7 +3,7 @@ spring.main.lazy-initialization=false
 spring.main.allow-bean-definition-overriding=true
 # application
 server.port=8085
-temp.basedir=C:/Users/pc/Desktop/qrcode/
+temp.basedir=c:/Users/pc/Desktop/qrcode/
 # mybatis-plus
 mybatis-plus.mapper-locations=classpath*:mapper/*.xml
 mybatis-plus.configuration.lazy-loading-enabled=true
@@ -60,6 +60,10 @@ spring.jackson.serialization.fail-on-empty-beans=false
 spring.jackson.deserialization.fail-on-unknown-properties=false
 spring.jackson.parser.allow-unquoted-control-chars=true
 spring.jackson.parser.allow-single-quotes=true
+spring.servlet.multipart.enabled=true
+spring.servlet.multipart.max-file-size=100MB
+spring.servlet.multipart.max-request-size=200MB
+spring.servlet.multipart.location=/temp
 # gzip
 server.compression.enabled=true
 server.compression.mime-types=application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
@@ -92,7 +96,7 @@ dx.copyrightYear: 2021
 dx.demoEnabled: true
 dx.addressEnabled: false
 dx.captchaType: math
-dx.profile: C:/Users/pc/Desktop/
+dx.profile: C:/Users/pc/Desktop/file
 
 # mq
 spring.rabbitmq.host=124.71.174.104

+ 5 - 1
src/main/resources/application-prod.properties

@@ -60,6 +60,10 @@ spring.jackson.serialization.fail-on-empty-beans=false
 spring.jackson.deserialization.fail-on-unknown-properties=false
 spring.jackson.parser.allow-unquoted-control-chars=true
 spring.jackson.parser.allow-single-quotes=true
+spring.servlet.multipart.enabled=true
+spring.servlet.multipart.max-file-size=100MB
+spring.servlet.multipart.max-request-size=200MB
+spring.servlet.multipart.location=/temp
 # gzip
 server.compression.enabled=true
 server.compression.mime-types=application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
@@ -92,7 +96,7 @@ dx.copyrightYear: 2021
 dx.demoEnabled: true
 dx.addressEnabled: false
 dx.captchaType: math
-dx.profile: /usr/local/service/dxtop/dxfile/
+dx.profile: /usr/local/service/dxtop/dxfile
 
 # mq
 spring.rabbitmq.host=124.71.174.104