Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
7fc710e6
Commit
7fc710e6
authored
Jul 18, 2019
by
hezhen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加多图上传
parent
70c9a5f1
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
203 additions
and
1 deletion
+203
-1
ImgDTO.java
...src/main/java/com/xxfc/platform/universal/dto/ImgDTO.java
+27
-0
UploadImgDTO.java
...in/java/com/xxfc/platform/universal/dto/UploadImgDTO.java
+27
-0
ImgBase64Util.java
...java/com/xxfc/platform/universal/utils/ImgBase64Util.java
+74
-0
UploadController.java
.../xxfc/platform/universal/controller/UploadController.java
+43
-1
UploadService.java
...va/com/xxfc/platform/universal/service/UploadService.java
+32
-0
No files found.
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/dto/ImgDTO.java
0 → 100644
View file @
7fc710e6
package
com
.
xxfc
.
platform
.
universal
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/3 17:51
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
ImgDTO
{
@ApiModelProperty
(
"图片base64"
)
private
String
imgFile
;
@ApiModelProperty
(
"图片名称"
)
private
String
fileName
;
@ApiModelProperty
(
"图片类型:jpg,png"
)
private
String
type
;
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/dto/UploadImgDTO.java
0 → 100644
View file @
7fc710e6
package
com
.
xxfc
.
platform
.
universal
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/3 17:51
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
UploadImgDTO
{
@ApiModelProperty
(
"路径前缀"
)
private
String
prefix
;
@ApiModelProperty
(
"图片"
)
private
List
<
ImgDTO
>
imgs
;
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/utils/ImgBase64Util.java
0 → 100644
View file @
7fc710e6
package
com
.
xxfc
.
platform
.
universal
.
utils
;
import
org.apache.commons.codec.binary.Base64
;
import
sun.misc.BASE64Decoder
;
import
java.io.*
;
;
public
class
ImgBase64Util
{
public
static
void
main
(
String
[]
args
)
{
String
imgFile
=
"d:\\Pictures\\1.jpg"
;
// 待处理的图片
String
imgbese
=
getImgStr
(
imgFile
);
System
.
out
.
println
(
imgbese
.
length
());
System
.
out
.
println
(
imgbese
);
String
imgFilePath
=
"d:\\Pictures\\0094.jpg"
;
// 新生成的图片
generateImage
(
imgbese
,
imgFilePath
);
}
/**
* 将图片转换成Base64编码
* @param imgFile 待处理图片
* @return
*/
public
static
String
getImgStr
(
String
imgFile
)
{
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream
in
=
null
;
byte
[]
data
=
null
;
// 读取图片字节数组
try
{
in
=
new
FileInputStream
(
imgFile
);
data
=
new
byte
[
in
.
available
()];
in
.
read
(
data
);
in
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
new
String
(
Base64
.
encodeBase64
(
data
));
}
/**
* 对字节数组字符串进行Base64解码并生成图片
* @param imgStr 图片数据
* @param imgFilePath 保存图片全路径地址
* @return
*/
public
static
boolean
generateImage
(
String
imgStr
,
String
imgFilePath
)
{
//
if
(
imgStr
==
null
)
// 图像数据为空
return
false
;
BASE64Decoder
decoder
=
new
BASE64Decoder
();
try
{
// Base64解码
byte
[]
b
=
decoder
.
decodeBuffer
(
imgStr
);
for
(
int
i
=
0
;
i
<
b
.
length
;
++
i
)
{
if
(
b
[
i
]
<
0
)
{
// 调整异常数据
b
[
i
]
+=
256
;
}
}
// 生成jpg图片
OutputStream
out
=
new
FileOutputStream
(
imgFilePath
);
out
.
write
(
b
);
out
.
flush
();
out
.
close
();
return
true
;
}
catch
(
Exception
e
)
{
return
false
;
}
}
}
\ No newline at end of file
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/UploadController.java
View file @
7fc710e6
...
@@ -3,10 +3,16 @@ package com.xxfc.platform.universal.controller;
...
@@ -3,10 +3,16 @@ package com.xxfc.platform.universal.controller;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.xxfc.platform.universal.dto.ImgDTO
;
import
com.xxfc.platform.universal.dto.UploadImgDTO
;
import
com.xxfc.platform.universal.service.UploadService
;
import
com.xxfc.platform.universal.service.UploadService
;
import
com.xxfc.platform.universal.utils.ImgBase64Util
;
import
com.xxfc.platform.universal.utils.PublicMsg
;
import
com.xxfc.platform.universal.utils.PublicMsg
;
import
com.xxfc.platform.universal.vo.Ueditor
;
import
com.xxfc.platform.universal.vo.Ueditor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.fileupload.FileItem
;
import
org.apache.commons.fileupload.disk.DiskFileItemFactory
;
import
org.apache.commons.fileupload.servlet.ServletFileUpload
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
...
@@ -14,6 +20,11 @@ import org.springframework.web.bind.annotation.*;
...
@@ -14,6 +20,11 @@ import org.springframework.web.bind.annotation.*;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
...
@@ -71,7 +82,8 @@ public class UploadController{
...
@@ -71,7 +82,8 @@ public class UploadController{
@RequestMapping
(
value
=
"/app/unauth/uploadFiles"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
value
=
"/app/unauth/uploadFiles"
,
method
=
RequestMethod
.
POST
)
public
JSONObject
uploadFiles
(
public
JSONObject
uploadFiles
(
@RequestParam
(
"files"
)
MultipartFile
[]
files
,
@RequestParam
(
"files"
)
MultipartFile
[]
files
,
@RequestParam
(
value
=
"prefix"
,
defaultValue
=
"app"
)
String
prefix
@RequestParam
(
value
=
"prefix"
,
defaultValue
=
"app"
)
String
prefix
,
HttpServletRequest
request
)
throws
Exception
{
)
throws
Exception
{
if
(
files
!=
null
&&
files
.
length
>
0
){
if
(
files
!=
null
&&
files
.
length
>
0
){
String
urls
=
""
;
String
urls
=
""
;
...
@@ -98,6 +110,36 @@ public class UploadController{
...
@@ -98,6 +110,36 @@ public class UploadController{
}
}
@PostMapping
(
value
=
"/app/unauth/uploads"
)
public
JSONObject
uploads
(
@RequestBody
UploadImgDTO
uploadimgDTO
)
throws
Exception
{
if
(
uploadimgDTO
==
null
){
JsonResultUtil
.
createDefaultFail
();
}
String
prefix
=
uploadimgDTO
.
getPrefix
();
if
(
StringUtils
.
isBlank
(
prefix
)){
prefix
=
"app"
;
}
List
<
ImgDTO
>
imgDTOS
=
uploadimgDTO
.
getImgs
();
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
if
(
imgDTOS
.
size
()>
0
){
for
(
ImgDTO
imgDTO:
imgDTOS
){
String
imgbese
=
imgDTO
.
getImgFile
();
String
fileName
=
imgDTO
.
getFileName
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
StringUtils
.
isNotBlank
(
imgbese
)){
String
url
=
uploadService
.
uploadImg
(
imgbese
,
prefix
);
map
.
put
(
"imgUrl"
,
url
);
map
.
put
(
"fileName"
,
fileName
);
list
.
add
(
map
);
}
}
}
return
JsonResultUtil
.
createSuccessResultWithObj
(
list
);
}
//以下是图片上传的方法
//以下是图片上传的方法
@RequestMapping
(
value
=
"/app/unauth/ueditor"
)
@RequestMapping
(
value
=
"/app/unauth/ueditor"
)
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/UploadService.java
View file @
7fc710e6
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.universal.service;
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.universal.service;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.xxfc.platform.universal.constant.RedisKey
;
import
com.xxfc.platform.universal.constant.RedisKey
;
import
com.xxfc.platform.universal.utils.ImgBase64Util
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.io.FileUtils
;
import
org.joda.time.DateTime
;
import
org.joda.time.DateTime
;
import
org.joda.time.format.DateTimeFormat
;
import
org.joda.time.format.DateTimeFormat
;
...
@@ -56,6 +57,37 @@ public class UploadService {
...
@@ -56,6 +57,37 @@ public class UploadService {
return
realFileRelPath
;
return
realFileRelPath
;
}
}
/**
* 写入上传文件,返回相对路径
* @param imgFile
* @return
*/
public
String
uploadImg
(
String
imgFile
,
String
prefix
)
throws
Exception
{
//创建本日存放目录
DateTime
now
=
DateTime
.
now
();
String
dirPathToday
=
"/"
+
prefix
+
"/"
+
now
.
toString
(
DEFAULT_DATE_TIME_FORMATTER
);
String
redisNoKey
=
RedisKey
.
UPLOAD_FILE_NO_PREFIX
+
now
.
toString
(
DEFAULT_DATE_TIME_FORMATTER
);
Long
no
=
redisTemplate
.
opsForValue
().
increment
(
redisNoKey
);
if
(
no
.
equals
(
1
l
)){
redisTemplate
.
expire
(
redisNoKey
,
1
,
TimeUnit
.
DAYS
);
}
String
realFileRelPath
=
dirPathToday
;
//文件存放路径
String
filePath
=
baseUploadPath
+
realFileRelPath
;
File
file
=
new
File
(
filePath
);
if
(!
file
.
exists
()){
file
.
mkdirs
();
}
realFileRelPath
=
filePath
+
"/"
+
no
+
".jpg"
;
//将文件写入指定位置
ImgBase64Util
.
generateImage
(
imgFile
,
realFileRelPath
);
realFileRelPath
=
SystemConfig
.
XXMP_URL
+
realFileRelPath
;
return
realFileRelPath
;
}
/**
/**
* @Method: makeFileName
* @Method: makeFileName
* @Description: 生成上传文件的文件名,文件名以:uuid+"_"+文件的原始名称
* @Description: 生成上传文件的文件名,文件名以:uuid+"_"+文件的原始名称
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment