Pārlūkot izejas kodu

uploadBallScreenVideo

lyhzzz 3 gadi atpakaļ
vecāks
revīzija
2a2f73606e

+ 2 - 2
src/main/java/com/cdf/config/WebAppConfig.java

@@ -28,8 +28,8 @@ public class WebAppConfig implements WebMvcConfigurer {
 	public void addInterceptors(InterceptorRegistry registry) {
 		registry.addInterceptor(backUserInterceptor).addPathPatterns("/back/**").excludePathPatterns("/**/login/**");
 		registry.addInterceptor(sceneInterceptor).addPathPatterns("/service/**")
-				.excludePathPatterns("/service/scene/edit/tag/save","/service/scene/edit/tag/delete"
-						,"/service/scene/edit/tag/list","/service/scene/edit/tag/getHotJson",
+				.excludePathPatterns("/service/scene/edit/tag/save","/service/scene/edit/tag/delete",
+						"/service/scene/edit/tag/list","/service/scene/edit/tag/getHotJson",
 						"/service/scene/edit/publicScene","/service/scene/edit/upload/files",
 						"/service/scene/getInfo","/service/scene/edit/getAuth","/service/scene/edit/uploadBallScreenVideo");
 		WebMvcConfigurer.super.addInterceptors(registry);

+ 5 - 1
src/main/java/com/cdf/httpClient/client/FdkkClient.java

@@ -131,7 +131,11 @@ public interface FdkkClient {
 
     @Post("{url}")
     @Address(source = FdkkSceneAddressSource.class)
-    JSONObject sendPost(@Var("url") String url, @Body  Map<String,String> param, @Header("token")  String token);
+    JSONObject sendPostFile(@Var("url") String url, @Body Map<String,String> param, @DataFile("file") String file, @Header("token")  String token);
+
+    @Post("{url}")
+    @Address(source = FdkkSceneAddressSource.class)
+    JSONObject sendPost(@Var("url") String url, @Body Map<String,String> param, @Header("token")  String token);
 
 
     @Get(url = "{url}")

+ 31 - 2
src/main/java/com/cdf/interceptor/SceneInterceptor.java

@@ -7,6 +7,7 @@ import com.cdf.common.ResultData;
 import com.cdf.entity.FdkkUser;
 import com.cdf.entity.User;
 import com.cdf.httpClient.client.FdkkClient;
+import com.cdf.httpClient.request.FdkkUploadRequest;
 import com.cdf.httpClient.response.FdkkResponse;
 import com.cdf.service.IFdkkUserService;
 import com.cdf.service.IUserService;
@@ -17,17 +18,25 @@ import org.apache.commons.logging.LogFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.HandlerInterceptor;
 
 import javax.annotation.Resource;
 import javax.servlet.ServletException;
+import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.BufferedReader;
+import java.io.File;
 import java.io.IOException;
+import java.nio.charset.Charset;
 import java.util.Enumeration;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Component
 public class SceneInterceptor implements HandlerInterceptor {
@@ -74,14 +83,34 @@ public class SceneInterceptor implements HandlerInterceptor {
 			if(request.getContentType().contains("application/json")){
 				send = fdkkClient.sendPostJson(requestURI, JSONObject.parseObject(ReadAsChars(request)), fdkkToken);
 			}else {
-				Enumeration<String> parameterNames = request.getParameterNames();
+				MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
+				Map<String, MultipartFile> fileMap = mRequest.getFileMap();
 				HashMap<String,String> map = new HashMap<>();
+				String path = null;
+				if(fileMap.size() >0){
+					for (Map.Entry<String, MultipartFile> next : fileMap.entrySet()) {
+						MultipartFile file = next.getValue();
+						if(file !=null && file.getSize() >0){
+							String fileName = file.getOriginalFilename();
+							assert fileName != null;
+							String s = fileName.substring(fileName.lastIndexOf("."));
+							File newFile = File.createTempFile(fileName,s);
+							file.transferTo(newFile);
+							path = newFile.getPath();
+						}
+					}
+				}
+				Enumeration<String> parameterNames = request.getParameterNames();
 				while (parameterNames.hasMoreElements()) {
 					String key =  parameterNames.nextElement();
 					String value = request.getParameter(key);
 					map.put(key,value);
 				}
-				send = fdkkClient.sendPost(requestURI, map, fdkkToken);
+				if(fileMap.size() >0){
+					send = fdkkClient.sendPostFile(requestURI, map, path,fdkkToken);
+				}else {
+					send = fdkkClient.sendPost(requestURI, map,fdkkToken);
+				}
 			}
 			response.getWriter().append(JSONObject.toJSONString(send));
 		}catch (Exception e){