From c41bcc6a35b340f68717bacdbdc7c9839b09b33f Mon Sep 17 00:00:00 2001 From: Kane Date: Fri, 30 Sep 2022 00:41:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=BC=82=E6=AD=A5=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0=E5=8A=9F=E8=83=BD=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/java/car_dealer/pom.xml | 13 +++++ .../fileupload/FileUploadController.java | 58 +++++++++++++++---- .../fileupload/FileUploadResult.java | 17 +++++- .../main/webapp/WEB-INF/classes/spring.xml | 5 ++ .../src/main/webapp/file_upload.html | 57 +++++++++++++++--- 5 files changed, 130 insertions(+), 20 deletions(-) diff --git a/code/java/car_dealer/pom.xml b/code/java/car_dealer/pom.xml index acac280..30c8bcd 100644 --- a/code/java/car_dealer/pom.xml +++ b/code/java/car_dealer/pom.xml @@ -63,6 +63,19 @@ 2.13.4 + + + commons-io + commons-io + 2.11.0 + + + + commons-fileupload + commons-fileupload + 1.4 + + diff --git a/code/java/car_dealer/src/main/java/com/cpic/xim/car_dealer/controllers/fileupload/FileUploadController.java b/code/java/car_dealer/src/main/java/com/cpic/xim/car_dealer/controllers/fileupload/FileUploadController.java index acf1c65..7f22c0e 100644 --- a/code/java/car_dealer/src/main/java/com/cpic/xim/car_dealer/controllers/fileupload/FileUploadController.java +++ b/code/java/car_dealer/src/main/java/com/cpic/xim/car_dealer/controllers/fileupload/FileUploadController.java @@ -2,7 +2,7 @@ * @Author: Kane * @Date: 2022-09-28 15:47:02 * @LastEditors: Kane - * @LastEditTime: 2022-09-29 00:14:00 + * @LastEditTime: 2022-09-30 00:33:41 * @FilePath: \car_dealer\src\main\java\com\cpic\xim\car_dealer\controllers\fileupload\FileUploadController.java * @Description: * @@ -11,6 +11,7 @@ package com.cpic.xim.car_dealer.controllers.fileupload; +import java.io.File; import java.io.IOException; import java.nio.channels.IllegalSelectorException; import javax.servlet.ServletException; @@ -18,6 +19,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; @@ -37,30 +39,64 @@ public class FileUploadController /***************************************************** * @param request * @param response - * @param file + * @param uploadFile * @return FileUploadResult *****************************************************/ @RequestMapping( path = "/upload" ) @ResponseBody - public FileUploadResult uploadFile( HttpServletRequest request, HttpServletResponse response, - MultipartFile file ) throws IllegalSelectorException, IOException + @CrossOrigin + public FileUploadResult uploadFile( HttpServletRequest request, MultipartFile uploadFile, + String test ) throws IllegalSelectorException, IOException { - response.setContentType( "text/json;charset=UTF-8" ); + // response.setContentType( "text/json;charset=UTF-8" ); + // response.setHeader( "Access-Control-Allow-Origin", "*" ); + // response.setHeader( "Access-Control-Allow-Methods", "GET,POST" ); FileUploadResult result = new FileUploadResult(); - // PrintWriter writer = response.getWriter(); - // String sessionID = request.getSession().getId(); + String sessionID = request.getSession().getId(); - if ( file == null) + if ( uploadFile == null ) { result.setSuccess( false ); + result.setMessage( "请用于上传文件!" ); + + return result; } - else + + if ( uploadFile.isEmpty() ) { - result.setSuccess( true ); - result.setFilePath( file.getOriginalFilename() ); + result.setSuccess( false ); + result.setMessage( "上传空文件!" ); + + return result; } + // 使用sessionID来作为存放的目录 + String rootPath = request.getServletContext().getRealPath( "/" + sessionID ); + String fileName = uploadFile.getOriginalFilename(); + + File destFile = new File( rootPath, fileName ); + + // 判断路径是否存在,不存在就创建。 + if ( !destFile.getParentFile().exists() ) + { + // 创建路径 + if ( !destFile.getParentFile().mkdirs() ) + { + // 如果创建路径失败 + result.setSuccess( false ); + result.setMessage( "创建存放路径失败,请联系开发人员!" ); + + return result; + } + } + + uploadFile.transferTo( destFile ); + + result.setSuccess( true ); + result.setFilePath( destFile.getPath() ); + result.setMessage( "上传成功!" ); + return result; } } diff --git a/code/java/car_dealer/src/main/java/com/cpic/xim/car_dealer/controllers/fileupload/FileUploadResult.java b/code/java/car_dealer/src/main/java/com/cpic/xim/car_dealer/controllers/fileupload/FileUploadResult.java index 4d3a66e..d53d8aa 100644 --- a/code/java/car_dealer/src/main/java/com/cpic/xim/car_dealer/controllers/fileupload/FileUploadResult.java +++ b/code/java/car_dealer/src/main/java/com/cpic/xim/car_dealer/controllers/fileupload/FileUploadResult.java @@ -2,7 +2,7 @@ * @Author: Kane * @Date: 2022-09-28 23:43:42 * @LastEditors: Kane - * @LastEditTime: 2022-09-29 00:16:20 + * @LastEditTime: 2022-09-29 22:29:13 * @FilePath: \car_dealer\src\main\java\com\cpic\xim\car_dealer\controllers\fileupload\FileUploadResult.java * @Description: * @@ -24,6 +24,9 @@ public class FileUploadResult @JsonProperty( "file_path" ) private String filePath; + @JsonProperty( "message" ) + private String message; + public FileUploadResult() {} @@ -45,5 +48,15 @@ public class FileUploadResult public void setFilePath( String filePath ) { this.filePath = filePath; - }; + } + + public String getMessage() + { + return message; + } + + public void setMessage( String message ) + { + this.message = message; + } } diff --git a/code/java/car_dealer/src/main/webapp/WEB-INF/classes/spring.xml b/code/java/car_dealer/src/main/webapp/WEB-INF/classes/spring.xml index b41b3e7..3078e41 100644 --- a/code/java/car_dealer/src/main/webapp/WEB-INF/classes/spring.xml +++ b/code/java/car_dealer/src/main/webapp/WEB-INF/classes/spring.xml @@ -18,4 +18,9 @@ --> + + + + + \ No newline at end of file diff --git a/code/java/car_dealer/src/main/webapp/file_upload.html b/code/java/car_dealer/src/main/webapp/file_upload.html index e44b925..89bf4a7 100644 --- a/code/java/car_dealer/src/main/webapp/file_upload.html +++ b/code/java/car_dealer/src/main/webapp/file_upload.html @@ -2,7 +2,7 @@ * @Author: Kane * @Date: 2022-09-29 16:33:30 * @LastEditors: Kane - * @LastEditTime: 2022-09-29 16:47:19 + * @LastEditTime: 2022-09-30 00:33:12 * @FilePath: \car_dealer\src\main\webapp\file_upload.html * @Description: * @@ -21,28 +21,71 @@
-
+
- + +