Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
aroad_aqsc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
许言琪
aroad_aqsc
Commits
1140d192
提交
1140d192
authored
5月 06, 2019
作者:
许志图
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加FastDFS文件上传接口
上级
1ebb33ae
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
186 行增加
和
11 行删除
+186
-11
pom.xml
pom.xml
+18
-1
FastClientImporter.java
...ant/framework/galaxy/aroad/config/FastClientImporter.java
+15
-0
UploadFileException.java
...framework/galaxy/aroad/exception/UploadFileException.java
+13
-0
FileUploadController.java
.../aroad/module/common/controller/FileUploadController.java
+114
-0
application-dev.yml
src/main/resources/application-dev.yml
+14
-6
application-prod.yml
src/main/resources/application-prod.yml
+12
-4
没有找到文件。
pom.xml
浏览文件 @
1140d192
...
...
@@ -19,6 +19,7 @@
<hutool.version>
4.3.2
</hutool.version>
<ttl.version>
2.10.1
</ttl.version>
<spring.security.oauth2.version>
2.3.5.RELEASE
</spring.security.oauth2.version>
<fastdfs.version>
1.26.5
</fastdfs.version>
</properties>
<dependencies>
...
...
@@ -68,6 +69,12 @@
<artifactId>
commons-lang
</artifactId>
<version>
2.6
</version>
</dependency>
<!-- 文件上传依赖包 -->
<dependency>
<groupId>
commons-fileupload
</groupId>
<artifactId>
commons-fileupload
</artifactId>
<version>
1.4
</version>
</dependency>
<dependency>
<groupId>
commons-configuration
</groupId>
<artifactId>
commons-configuration
</artifactId>
...
...
@@ -142,7 +149,17 @@
<artifactId>
commons-collections4
</artifactId>
<version>
4.1
</version>
</dependency>
<!-- fastdfs-client -->
<dependency>
<groupId>
com.github.tobato
</groupId>
<artifactId>
fastdfs-client
</artifactId>
<version>
${fastdfs.version}
</version>
</dependency>
<dependency>
<groupId>
com.github.tobato
</groupId>
<artifactId>
fastdfs-client
</artifactId>
<version>
${fastdfs.version}
</version>
</dependency>
</dependencies>
<build>
...
...
src/main/java/com/elephant/framework/galaxy/aroad/config/FastClientImporter.java
0 → 100644
浏览文件 @
1140d192
package
com
.
elephant
.
framework
.
galaxy
.
aroad
.
config
;
import
com.github.tobato.fastdfs.FdfsClientConfig
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.EnableMBeanExport
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.jmx.support.RegistrationPolicy
;
@Configuration
@Import
(
FdfsClientConfig
.
class
)
// 解决jmx重复注册bean的问题
@EnableMBeanExport
(
registration
=
RegistrationPolicy
.
IGNORE_EXISTING
)
public
class
FastClientImporter
{
}
src/main/java/com/elephant/framework/galaxy/aroad/exception/UploadFileException.java
0 → 100644
浏览文件 @
1140d192
package
com
.
elephant
.
framework
.
galaxy
.
aroad
.
exception
;
/**
* 上传文件异常
*/
public
class
UploadFileException
extends
RuntimeException
{
public
UploadFileException
(
String
message
)
{
super
(
message
);
}
}
src/main/java/com/elephant/framework/galaxy/aroad/module/common/controller/FileUploadController.java
0 → 100644
浏览文件 @
1140d192
package
com
.
elephant
.
framework
.
galaxy
.
aroad
.
module
.
common
.
controller
;
import
com.elephant.framework.galaxy.aroad.constant.CommonConstants
;
import
com.elephant.framework.galaxy.aroad.exception.UploadFileException
;
import
com.elephant.framework.galaxy.aroad.module.codegen.response.R
;
import
com.github.tobato.fastdfs.domain.fdfs.StorePath
;
import
com.github.tobato.fastdfs.service.FastFileStorageClient
;
import
org.apache.commons.io.FilenameUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
org.springframework.web.multipart.commons.CommonsMultipartResolver
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.util.*
;
/**
* 文件上环fastDFS
*
* @author wangjian
* @date 2019-05-05 16:31:46
*/
@RestController
@RequestMapping
(
"/upload"
)
public
class
FileUploadController
{
@Autowired
private
FastFileStorageClient
storageClient
;
/**
* 上传图片
*
* @return R
*/
@PostMapping
(
"/images"
)
public
R
uploadImage
(
HttpServletRequest
request
)
throws
IOException
{
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
//将当前上下文初始化给 CommonsMultipartResolver (多部分解析器)
CommonsMultipartResolver
multipartResolver
=
new
CommonsMultipartResolver
(
request
.
getSession
().
getServletContext
());
//检查form中是否有enctype="multipart/form-data"
if
(
multipartResolver
.
isMultipart
(
request
))
{
//将request变成多部分request
MultipartHttpServletRequest
multiRequest
=
(
MultipartHttpServletRequest
)
request
;
List
<
String
>
supportFileTypes
=
Arrays
.
asList
(
"JPG"
,
"JPEG"
,
"PNG"
,
"GIF"
,
"BMP"
,
"WBMP"
);
//获取multiRequest 中所有的文件名
Iterator
iter
=
multiRequest
.
getFileNames
();
while
(
iter
.
hasNext
())
{
String
name
=
iter
.
next
().
toString
();
//一次遍历所有文件
MultipartFile
file
=
multiRequest
.
getFile
(
name
);
if
(
file
!=
null
)
{
String
extension
=
FilenameUtils
.
getExtension
(
file
.
getOriginalFilename
());
if
(
StringUtils
.
isBlank
(
extension
))
{
throw
new
UploadFileException
(
"上传文件类型不支持"
);
}
if
(!
supportFileTypes
.
contains
(
extension
.
toUpperCase
()))
{
throw
new
UploadFileException
(
"上传文件类型不支持"
);
}
StorePath
storePath
=
this
.
storageClient
.
uploadImageAndCrtThumbImage
(
file
.
getInputStream
(),
file
.
getSize
(),
extension
,
null
);
resultMap
.
put
(
name
,
storePath
.
getFullPath
());
}
}
return
new
R
<>(
resultMap
);
}
return
new
R
(
CommonConstants
.
FAIL
,
"没有上传文件"
);
}
/**
* 上传文件
*
* @return R
*/
@PostMapping
(
"/files"
)
public
R
uploadFile
(
HttpServletRequest
request
)
throws
IOException
{
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
//将当前上下文初始化给 CommonsMultipartResolver (多部分解析器)
CommonsMultipartResolver
multipartResolver
=
new
CommonsMultipartResolver
(
request
.
getSession
().
getServletContext
());
//检查form中是否有enctype="multipart/form-data"
if
(
multipartResolver
.
isMultipart
(
request
))
{
//将request变成多部分request
MultipartHttpServletRequest
multiRequest
=
(
MultipartHttpServletRequest
)
request
;
List
<
String
>
supportFileTypes
=
Arrays
.
asList
(
"TXT"
,
"XLS"
,
"XLSX"
,
"DOC"
,
"DOCX"
,
"PPT"
,
"PPTX"
,
"RAR"
,
"ZIP"
);
//获取multiRequest 中所有的文件名
Iterator
iter
=
multiRequest
.
getFileNames
();
while
(
iter
.
hasNext
())
{
String
name
=
iter
.
next
().
toString
();
//一次遍历所有文件
MultipartFile
file
=
multiRequest
.
getFile
(
name
);
if
(
file
!=
null
)
{
String
extension
=
FilenameUtils
.
getExtension
(
file
.
getOriginalFilename
());
if
(
StringUtils
.
isBlank
(
extension
))
{
throw
new
UploadFileException
(
"上传文件类型不支持"
);
}
if
(!
supportFileTypes
.
contains
(
extension
.
toUpperCase
()))
{
throw
new
UploadFileException
(
"上传文件类型不支持"
);
}
StorePath
storePath
=
this
.
storageClient
.
uploadFile
(
file
.
getInputStream
(),
file
.
getSize
(),
extension
,
null
);
resultMap
.
put
(
name
,
storePath
.
getFullPath
());
}
}
return
new
R
<>(
resultMap
);
}
return
new
R
(
CommonConstants
.
FAIL
,
"没有上传文件"
);
}
}
src/main/resources/application-dev.yml
浏览文件 @
1140d192
...
...
@@ -6,10 +6,10 @@ spring:
resources
:
static-locations
:
classpath:images/
servlet
:
multipart
:
enabled
:
true
max-file-size
:
512000
# 最大支持文件大小
max-request-size
:
512000
# 最大支持请求大小
multipart
:
enabled
:
true
max-file-size
:
100MB
max-request-size
:
300MB
datasource
:
driver-class-name
:
com.mysql.jdbc.Driver
url
:
jdbc:mysql://127.0.0.1:3306/aroad?useUnicode=true&characterEncoding=utf-8&useSSL=false
...
...
@@ -41,4 +41,13 @@ mybatis-plus:
configuration
:
log-impl
:
org.apache.ibatis.logging.stdout.StdOutImpl
prop
:
upload-folder
:
E:\file
\ No newline at end of file
upload-folder
:
E:\file
fdfs
:
so-timeout
:
1501
connect-timeout
:
601
thumb-image
:
# 缩略图
width
:
60
height
:
60
tracker-list
:
# tracker地址
-
47.105.47.32:22122
src/main/resources/application-prod.yml
浏览文件 @
1140d192
...
...
@@ -8,8 +8,8 @@ spring:
servlet
:
multipart
:
enabled
:
true
max-file-size
:
100MB
# 最大支持文件大小
max-request-size
:
300MB
# 最大支持请求大小
max-file-size
:
100MB
max-request-size
:
300MB
datasource
:
driver-class-name
:
com.mysql.jdbc.Driver
url
:
jdbc:mysql://127.0.0.1:3304/aroad?useUnicode=true&characterEncoding=utf-8&useSSL=false
...
...
@@ -42,4 +42,13 @@ mybatis-plus:
configuration
:
log-impl
:
org.apache.ibatis.logging.stdout.StdOutImpl
prop
:
upload-folder
:
E:\file
\ No newline at end of file
upload-folder
:
E:\file
fdfs
:
so-timeout
:
1501
connect-timeout
:
601
thumb-image
:
# 缩略图
width
:
60
height
:
60
tracker-list
:
# tracker地址
-
47.105.47.32:22122
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论