sunyj 9 лет назад
Родитель
Сommit
f26c118acc

+ 8 - 0
pom.xml

@@ -19,6 +19,7 @@
 		<jasperreports.version>6.3.0</jasperreports.version>
 		<groovy.version>2.4.7</groovy.version>
 		<poi.version>3.10.1</poi.version>
+		<commons.fileupload.version>1.3.2</commons.fileupload.version>
 	</properties>
 
 	<dependencies>
@@ -86,6 +87,13 @@
 			<artifactId>msyahei</artifactId>
 			<version>1.0.0</version>
 		</dependency>
+
+		<!-- 文件上传 -->
+		<dependency>
+			<groupId>commons-fileupload</groupId>
+			<artifactId>commons-fileupload</artifactId>
+			<version>${commons.fileupload.version}</version>
+		</dependency>
 	</dependencies>
 
 	<build>

+ 59 - 0
src/main/java/com/uas/report/controller/UploadController.java

@@ -0,0 +1,59 @@
+package com.uas.report.controller;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Controller;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.uas.report.util.ReportConstants;
+
+@Controller
+@RequestMapping("/upload")
+public class UploadController {
+
+	private Logger logger = Logger.getLogger(UploadController.class);
+
+	@RequestMapping("")
+	@ResponseBody
+	public String upload(String userName, MultipartFile file) {
+		String message = "";
+		if (StringUtils.isEmpty(userName)) {
+			message = "未传入当前账套用户名!";
+			logger.error(message);
+			// return message;
+			userName = "UAS";
+		}
+
+		if (file == null || file.isEmpty()) {
+			message = "文件为空,无法进行上传!";
+			logger.error(message);
+			return message;
+		}
+
+		logger.info("开始上传...");
+		String reportName = file.getOriginalFilename();
+		String targetFilePath = new StringBuilder(ReportConstants.REPORT_DIR).append(userName).append(File.separator)
+				.append(reportName).toString();
+		File targetFile = new File(targetFilePath);
+		if (!targetFile.exists()) {
+			targetFile.mkdirs();
+		}
+		try {
+			file.transferTo(targetFile);
+			message = "成功上传文件 " + reportName + " 至 " + targetFile.getCanonicalPath();
+			logger.info(message);
+			return message;
+		} catch (IllegalStateException | IOException e) {
+			e.printStackTrace();
+		}
+
+		message = "上传文件 " + reportName + " 失败";
+		logger.error(message);
+		return message;
+	}
+}

+ 7 - 1
src/main/webapp/WEB-INF/webmvc.xml

@@ -22,6 +22,9 @@
 
 	<context:component-scan base-package="com.uas.report" />
 
+	<bean id="multipartResolver"
+		class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
+
 	<bean
 		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 		<!-- <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" 
@@ -31,6 +34,9 @@
 
 	<mvc:view-controller path="/" view-name="/views/index.html" />
 	<mvc:view-controller path="/viewer" view-name="/pdf.js/web/viewer.html" />
-	<mvc:view-controller path="/preview" view-name="/static/view/preview.html" />
+	<mvc:view-controller path="/preview"
+		view-name="/static/view/preview.html" />
+	<mvc:view-controller path="/testupload.html"
+		view-name="/static/view/testupload.html" />
 
 </beans>

+ 12 - 0
src/main/webapp/resources/view/testupload.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<title>Insert title here</title>
+</head>
+<body>
+	<form action="upload" method="post" enctype="multipart/form-data">
+		<input id="file" type="file" name="file" /> <input type="submit" value="upload" />
+	</form>
+</body>
+</html>