From dd39ee433930161c42e416598c468e03b1aaf2d1 Mon Sep 17 00:00:00 2001
From: zxm <154040976@qq.com>
Date: Tue, 8 May 2018 23:40:37 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=81=E8=A3=85=E6=96=87=E4=BB=B6=E4=B8=8A?=
=?UTF-8?q?=E4=BC=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/java/com/len/util/UploadUtil.java | 105 ++++++++++++++++++
.../com/len/controller/UserController.java | 24 ++--
.../java/com/len/config/WebMvcConfig.java | 4 +-
.../src/main/resources/application-dev.yml | 11 +-
pom.xml | 6 +
5 files changed, 127 insertions(+), 23 deletions(-)
create mode 100644 len-core/src/main/java/com/len/util/UploadUtil.java
diff --git a/len-core/src/main/java/com/len/util/UploadUtil.java b/len-core/src/main/java/com/len/util/UploadUtil.java
new file mode 100644
index 0000000..e483c8c
--- /dev/null
+++ b/len-core/src/main/java/com/len/util/UploadUtil.java
@@ -0,0 +1,105 @@
+package com.len.util;
+
+import com.len.exception.MyException;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.UUID;
+
+/**
+ * Created by meng on 2018/5/8.
+ * 文件上传工具类
+ */
+@Getter
+@Setter
+@ConfigurationProperties
+@Component
+public class UploadUtil {
+
+ /**
+ * 上传请求资源
+ */
+ private MultipartFile multipartFile = null;
+
+ /**
+ * 按照当日创建文件夹
+ */
+ @Value("${lenosp.isDayType}")
+ private boolean isDayType;
+ /**
+ * 自定义文件路径
+ */
+ @Value("${lenosp.uploadPath}")
+ private String uploadPath;
+
+ @Value("${lenosp.imagePath}")
+ private String imagePath;
+
+ public static final String IMAGE_SUFFIX = "bmp,jpg,png,gif,jpeg";
+
+ private File currentFile;
+
+ public UploadUtil(MultipartFile multipartFile) {
+ this.multipartFile = multipartFile;
+ }
+
+ public UploadUtil() {
+ }
+
+ public String upload() {
+ if (isNull()) {
+ throw new MyException("上传数据/地址获取异常");
+ }
+
+ String fileName = fileNameStyle();
+ try {
+ FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), currentFile);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return fileName;
+ }
+
+ /**
+ * 格式化文件名 默认采用UUID
+ *
+ * @return
+ */
+ public String fileNameStyle() {
+ String curr = multipartFile.getOriginalFilename();
+ int suffixLen = curr.lastIndexOf(".");
+ if (suffixLen == -1) {
+ throw new MyException("文件获取异常");
+ }
+ String suffix = curr.substring(suffixLen, curr.length());
+ int index = Arrays.binarySearch(IMAGE_SUFFIX.split(","),
+ suffix.replace(".", ""));
+
+ curr = UUID.randomUUID() + suffix;
+ String filename=curr;
+ //image 情况
+ curr = StringUtils.isEmpty(imagePath) || index == -1 ?
+ uploadPath + "\\" + curr : imagePath + "\\" + curr;
+ currentFile = new File(curr);
+
+ return filename;
+ }
+
+ private boolean isNull() {
+ if (null != multipartFile) {
+ return false;
+ }
+ return true;
+ }
+
+
+}
diff --git a/len-sys/src/main/java/com/len/controller/UserController.java b/len-sys/src/main/java/com/len/controller/UserController.java
index d674ee5..24e8e25 100644
--- a/len-sys/src/main/java/com/len/controller/UserController.java
+++ b/len-sys/src/main/java/com/len/controller/UserController.java
@@ -9,10 +9,7 @@ import com.len.entity.SysUser;
import com.len.exception.MyException;
import com.len.service.RoleUserService;
import com.len.service.SysUserService;
-import com.len.util.BeanUtil;
-import com.len.util.Checkbox;
-import com.len.util.JsonUtil;
-import com.len.util.Md5Util;
+import com.len.util.*;
import io.swagger.annotations.ApiOperation;
import java.io.*;
@@ -233,8 +230,9 @@ public class UserController extends BaseController {
return j;
}
- @Value("${imagePath}")
- private String imagePath;
+ @Autowired
+ UploadUtil uploadUtil;
+
/**
* 头像上传 目前首先相对路径
*/
@@ -242,18 +240,10 @@ public class UserController extends BaseController {
@ResponseBody
public JsonUtil imgUpload(HttpServletRequest req, @RequestParam("file") MultipartFile file,
ModelMap model) {
+ uploadUtil.setMultipartFile(file);
+ String fileName=uploadUtil.upload();
JsonUtil j = new JsonUtil();
- String imageName=file.getOriginalFilename();
- imageName= UUID.randomUUID()+imageName.substring(imageName.indexOf("."),imageName.length());
- File file2 = new File(imagePath+"\\"+imageName);
- try {
- FileUtils.copyInputStreamToFile(file.getInputStream(), file2);
- } catch (IOException e) {
- j.setFlag(false);
- j.setMsg("上传失败");
- e.printStackTrace();
- }
- j.setMsg(imageName);
+ j.setMsg(fileName);
return j;
}
diff --git a/len-web/src/main/java/com/len/config/WebMvcConfig.java b/len-web/src/main/java/com/len/config/WebMvcConfig.java
index f5f9cd5..a09d041 100644
--- a/len-web/src/main/java/com/len/config/WebMvcConfig.java
+++ b/len-web/src/main/java/com/len/config/WebMvcConfig.java
@@ -25,9 +25,9 @@ import java.util.Locale;
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
- @Value("${imagePath}")
+ @Value("${lenosp.imagePath}")
private String imagePath;
- @Value("${filePath}")
+ @Value("${lenosp.uploadPath}")
private String filePath;
@Bean
diff --git a/len-web/src/main/resources/application-dev.yml b/len-web/src/main/resources/application-dev.yml
index c1bdeef..97d5c6e 100644
--- a/len-web/src/main/resources/application-dev.yml
+++ b/len-web/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
server:
- port: 8081
+ port: 8082
spring:
datasource:
url: jdbc:mysql://localhost:3306/lenos?useUnicode=true&characterEncoding=UTF-8
username: root
# password: 123456
# password: 1234
- password: root
+ password: 123456
# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
@@ -32,6 +32,7 @@ spring:
prefer-ip: true
url: http://localhost:8082
+
mybatis:
type-aliases-package: com.len.entity
mapper-locations: classpath*:mapper/*.xml
@@ -55,6 +56,8 @@ logging:
com.len.mapper: debug
config: classpath:log4j2.yml
-filePath: ./file/
+lenosp:
+ uploadPath: ./file/
+ isDayType: false
-imagePath: ./image/
\ No newline at end of file
+ imagePath: ./image/
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 79e810c..81abb49 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,12 @@
spring-boot-properties-migrator
-->
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
org.springframework.boot
spring-boot-starter-web