|
@@ -0,0 +1,40 @@
|
|
|
+package com.mooctest.crowd.site.controller.interceptor;
|
|
|
+
|
|
|
+import com.mooctest.crowd.domain.exception.BaseException;
|
|
|
+import com.mooctest.crowd.site.util.FileUtil;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|
|
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author: Diors.Po
|
|
|
+ * @Email: 171256175@qq.com
|
|
|
+ * @date 2019-08-06 00:20
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
+public class FileCheckInterceptor extends HandlerInterceptorAdapter {
|
|
|
+ @Override
|
|
|
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
|
|
+ if (request!=null && request instanceof MultipartHttpServletRequest) {
|
|
|
+ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
|
|
+ Map<String, MultipartFile> files = multipartRequest.getFileMap();
|
|
|
+ Iterator<String> iterator = files.keySet().iterator();
|
|
|
+ while (iterator.hasNext()){
|
|
|
+ String formKey = (String) iterator.next();
|
|
|
+ MultipartFile file = files.get(formKey);
|
|
|
+ if (!FileUtil.checkFile(file.getInputStream()))
|
|
|
+ throw new BaseException("文件不是可接受的格式,或上传了非法修改后缀名的文件: "+file.getOriginalFilename());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("\n\n\nThis is a Interceptor Test!!!\n\n\n");
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+}
|