Bladeren bron

finikes alpha 17(设置文件上传尺寸)

finikes 2 jaren geleden
bovenliggende
commit
044287c76a

+ 1 - 1
src/main/java/com/finikes/oc/estate/controller/HouseController.java

@@ -79,7 +79,7 @@ public class HouseController {
             name = saveCert(file);
         } catch (IOException e) {
             e.printStackTrace();
-            return new BaseDTO("000", e.getMessage());
+            return new BaseDTO("000", e.getLocalizedMessage());
         }
         return new BaseDTO().setContent(name);
     }

+ 15 - 1
src/main/java/com/finikes/oc/filter/AuthFilter.java

@@ -8,8 +8,10 @@ import com.finikes.oc.management.dao.ResourceDAO;
 import com.finikes.oc.management.entity.Authority;
 import com.finikes.oc.management.entity.Manager;
 import com.finikes.oc.management.entity.Resource;
+import org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MaxUploadSizeExceededException;
 
 import javax.servlet.*;
 import javax.servlet.http.HttpServletRequest;
@@ -46,7 +48,19 @@ public class AuthFilter implements Filter {
             response.getWriter().print("{\"code\":\"201\", \"message\":\"没有登录\"}");
             return;
         }
-        chain.doFilter(request, httpServletResponse);
+
+        try {
+            chain.doFilter(request, httpServletResponse);
+        } catch (Exception e) {
+            if (e.getCause() instanceof MaxUploadSizeExceededException) {
+                response.setCharacterEncoding("UTF-8");
+                response.setContentType("application/json; charset=utf-8");
+                response.getWriter().print("{\"code\":\"303\", \"message\":\"文件尺寸不能大于10MB\"}");
+                return;
+            } else {
+                throw e;
+            }
+        }
     }
 
     private int pass(Passport passport, String url, String httpMethod) {

+ 15 - 1
src/main/java/com/finikes/oc/filter/CorsFilter.java

@@ -1,6 +1,8 @@
 package com.finikes.oc.filter;
 
+import org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MaxUploadSizeExceededException;
 
 import javax.servlet.*;
 import javax.servlet.http.HttpServletResponse;
@@ -19,6 +21,18 @@ public class CorsFilter implements Filter {
         httpServletResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
         httpServletResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
         httpServletResponse.setHeader("Pragma", "no-cache");
-        chain.doFilter(request, httpServletResponse);
+
+        try {
+            chain.doFilter(request, httpServletResponse);
+        } catch (Exception e) {
+            if (e.getCause() instanceof MaxUploadSizeExceededException) {
+                response.setCharacterEncoding("UTF-8");
+                response.setContentType("application/json; charset=utf-8");
+                response.getWriter().print("{\"code\":\"303\", \"message\":\"文件尺寸不能大于10MB\"}");
+                return;
+            } else {
+                throw e;
+            }
+        }
     }
 }

+ 4 - 0
src/main/resources/application.yml

@@ -1,4 +1,8 @@
 spring:
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 10MB
   redis:
     host: 10.18.10.106
     port: 6379