Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
C
chnmuseum-party
Project
Project
Details
Activity
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
liqin
chnmuseum-party
Commits
6c30f936
Commit
6c30f936
authored
Mar 20, 2021
by
liqin
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug fixed
parent
98bee46a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
136 additions
and
171 deletions
+136
-171
FastDFSUtils.java
...cn/wisenergy/chnmuseum/party/common/dfs/FastDFSUtils.java
+133
-14
FastdfsUtil.java
.../cn/wisenergy/chnmuseum/party/common/dfs/FastdfsUtil.java
+0
-154
UeditorServiceFastdfsImpl.java
...nmuseum/party/service/impl/UeditorServiceFastdfsImpl.java
+3
-3
No files found.
src/main/java/cn/wisenergy/chnmuseum/party/common/dfs/FastDFSUtils.java
View file @
6c30f936
package
cn
.
wisenergy
.
chnmuseum
.
party
.
common
.
dfs
;
import
org.apache.commons.io.FilenameUtils
;
import
org.csource.common.MyException
;
import
org.csource.common.NameValuePair
;
import
org.csource.fastdfs.*
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
javax.imageio.ImageIO
;
import
java.awt.image.BufferedImage
;
import
java.io.*
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Properties
;
/**
*
上传图片到FastDFS
*
ueditor
*/
@Component
public
class
FastDFSUtils
{
...
...
@@ -26,15 +30,130 @@ public class FastDFSUtils {
FastDFSUtils
.
dfsFileAccessBasePath
=
dfsFileAccessBasePath
;
}
static
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FastDFSUtils
.
class
);
private
static
boolean
isInit
=
false
;
private
static
void
init
()
throws
Exception
{
Properties
props
=
new
Properties
();
final
InputStream
in
=
new
ClassPathResource
(
"fastdfs-client.properties"
).
getInputStream
();
props
.
load
(
in
);
ClientGlobal
.
initByProperties
(
props
);
}
private
static
TrackerClient
getTrackerClient
()
throws
Exception
{
if
(!
isInit
)
{
init
();
isInit
=
true
;
}
return
new
TrackerClient
();
}
private
static
TrackerServer
getTrackerServer
()
throws
Exception
{
return
getTrackerClient
().
getConnection
();
}
private
static
StorageClient
getStorageClient
()
throws
Exception
{
TrackerServer
trackerServer
=
getTrackerServer
();
return
new
StorageClient
(
trackerServer
,
null
);
}
/**
* 文件方式上传
*/
public
static
Map
<
String
,
Object
>
uploadFile
(
File
file
)
{
String
fileName
=
file
.
getName
();
byte
[]
fileBuff
=
FileUtil
.
getBytes
(
file
);
return
uploadFile
(
fileBuff
,
fileName
);
}
/**
* 是否是图片
*/
private
static
boolean
isImage
(
String
fileName
)
{
return
FileTypeUtil
.
isImageByExtension
(
fileName
);
}
/**
* 字节流方式上传
*/
public
static
Map
<
String
,
Object
>
uploadFile
(
byte
[]
fileBuff
,
String
fileName
)
{
String
originalFileName
=
FilenameUtils
.
getName
(
fileName
);
// 文件名
String
fileExtName
=
FilenameUtils
.
getExtension
(
originalFileName
);
// 文件后缀名
long
length
=
fileBuff
.
length
;
// 字节
boolean
isImage
=
isImage
(
originalFileName
);
String
mimeType
=
FileUtil
.
getMimeType
(
fileName
);
int
width
=
0
;
int
height
=
0
;
if
(
isImage
)
{
int
[]
imageInfo
=
getImageInfo
(
fileBuff
);
width
=
imageInfo
[
0
];
height
=
imageInfo
[
1
];
}
NameValuePair
[]
metaList
=
new
NameValuePair
[]{
new
NameValuePair
(
"fileName"
,
fileName
),
new
NameValuePair
(
"isImage"
,
isImage
+
""
),
new
NameValuePair
(
"mimeType"
,
mimeType
),
new
NameValuePair
(
"width"
,
width
+
""
),
new
NameValuePair
(
"height"
,
height
+
""
),
new
NameValuePair
(
"author"
,
"FastdfsUtils"
)};
boolean
status
=
false
;
String
message
=
"文件上传失败!"
;
logger
.
info
(
"startTIme:"
+
(
new
Date
().
getMinutes
()));
String
[]
responseData
=
storeFile
(
fileBuff
,
fileExtName
,
metaList
);
logger
.
info
(
"startTIme:"
+
(
new
Date
().
getMinutes
()));
Map
<
String
,
Object
>
uploadResult
=
new
HashMap
<
String
,
Object
>();
if
(
responseData
!=
null
)
{
status
=
true
;
message
=
"文件上传成功!"
;
uploadResult
.
put
(
"isImage"
,
isImage
);
if
(
isImage
)
{
uploadResult
.
put
(
"width"
,
width
);
uploadResult
.
put
(
"height"
,
height
);
}
uploadResult
.
put
(
"groupName"
,
responseData
[
0
]);
uploadResult
.
put
(
"storageFileName"
,
responseData
[
1
]);
uploadResult
.
put
(
"link"
,
responseData
[
0
]
+
"/"
+
responseData
[
1
]);
// 文件访问链接
}
uploadResult
.
put
(
"status"
,
status
);
uploadResult
.
put
(
"message"
,
message
);
uploadResult
.
put
(
"fileName"
,
fileName
);
uploadResult
.
put
(
"mimeType"
,
mimeType
);
uploadResult
.
put
(
"length"
,
length
);
return
uploadResult
;
}
private
static
int
[]
getImageInfo
(
byte
[]
fileBuff
)
{
try
{
Properties
props
=
new
Properties
();
final
InputStream
in
=
new
ClassPathResource
(
"fastdfs-client.properties"
).
getInputStream
();
props
.
load
(
in
);
ClientGlobal
.
initByProperties
(
props
);
}
catch
(
IOException
|
MyException
e
)
{
e
.
printStackTrace
();
// File转为BufferedImage
// BufferedImage buff = ImageIO.read(new
// FileImageInputStream(file));
// BufferedImage buff = ImageIO.read(file);
// byte[]转为BufferedImage
ByteArrayInputStream
in
=
new
ByteArrayInputStream
(
fileBuff
);
// 将byte[]作为输入流;
BufferedImage
image
=
ImageIO
.
read
(
in
);
// 将in作为输入流,读取图片存入image中,而这里in可以为ByteArrayInputStream();
int
width
=
image
.
getWidth
();
int
height
=
image
.
getHeight
();
return
new
int
[]{
width
,
height
};
}
catch
(
Exception
e
)
{
logger
.
error
(
"FastdfsUtils.getImageInfo时发生异常:"
,
e
);
}
return
new
int
[]{
0
,
0
};
}
private
static
String
[]
storeFile
(
byte
[]
fileBuff
,
String
fileExtName
,
NameValuePair
[]
metaList
)
{
String
[]
responseData
=
null
;
try
{
StorageClient
storageClient
=
getStorageClient
();
responseData
=
storageClient
.
upload_file
(
fileBuff
,
fileExtName
.
toLowerCase
(),
metaList
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"FastdfsUtils.storeFile时发生异常:"
,
e
);
}
return
responseData
;
}
public
static
String
[]
uploadPic
(
String
path
,
String
fileName
,
long
size
)
{
...
...
@@ -78,7 +197,7 @@ public class FastDFSUtils {
meta_list
[
0
]
=
new
NameValuePair
(
"fileName"
,
fileName
);
meta_list
[
1
]
=
new
NameValuePair
(
"fileExt"
,
extName
);
meta_list
[
2
]
=
new
NameValuePair
(
"fileSize"
,
String
.
valueOf
(
size
));
fileIds
=
storageClient
.
upload_file
(
null
,
size
,
new
UploadFileSender
(
inStream
),
extName
,
meta_list
);
fileIds
=
storageClient
.
upload_file
(
null
,
size
,
new
FastDFSUtils
.
UploadFileSender
(
inStream
),
extName
,
meta_list
);
return
dfsFileAccessBasePath
+
"/"
+
fileIds
[
0
]
+
"/"
+
fileIds
[
1
];
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -162,4 +281,4 @@ public class FastDFSUtils {
}
}
}
\ No newline at end of file
}
src/main/java/cn/wisenergy/chnmuseum/party/common/dfs/FastdfsUtil.java
deleted
100644 → 0
View file @
98bee46a
package
cn
.
wisenergy
.
chnmuseum
.
party
.
common
.
dfs
;
import
org.apache.commons.io.FilenameUtils
;
import
org.csource.common.NameValuePair
;
import
org.csource.fastdfs.ClientGlobal
;
import
org.csource.fastdfs.StorageClient
;
import
org.csource.fastdfs.TrackerClient
;
import
org.csource.fastdfs.TrackerServer
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.core.io.ClassPathResource
;
import
javax.imageio.ImageIO
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayInputStream
;
import
java.io.File
;
import
java.io.InputStream
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Properties
;
/**
* ueditor
*/
public
class
FastdfsUtil
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FastdfsUtil
.
class
);
private
static
boolean
isInit
=
false
;
private
static
void
init
()
throws
Exception
{
Properties
props
=
new
Properties
();
final
InputStream
in
=
new
ClassPathResource
(
"fastdfs-client.properties"
).
getInputStream
();
props
.
load
(
in
);
ClientGlobal
.
initByProperties
(
props
);
}
private
static
TrackerClient
getTrackerClient
()
throws
Exception
{
if
(!
isInit
)
{
init
();
isInit
=
true
;
}
return
new
TrackerClient
();
}
private
static
TrackerServer
getTrackerServer
()
throws
Exception
{
return
getTrackerClient
().
getConnection
();
}
private
static
StorageClient
getStorageClient
()
throws
Exception
{
TrackerServer
trackerServer
=
getTrackerServer
();
return
new
StorageClient
(
trackerServer
,
null
);
}
/**
* 文件方式上传
*/
public
static
Map
<
String
,
Object
>
uploadFile
(
File
file
)
{
String
fileName
=
file
.
getName
();
byte
[]
fileBuff
=
FileUtil
.
getBytes
(
file
);
return
uploadFile
(
fileBuff
,
fileName
);
}
/**
* 是否是图片
*/
private
static
boolean
isImage
(
String
fileName
)
{
return
FileTypeUtil
.
isImageByExtension
(
fileName
);
}
/**
* 字节流方式上传
*/
public
static
Map
<
String
,
Object
>
uploadFile
(
byte
[]
fileBuff
,
String
fileName
)
{
String
originalFileName
=
FilenameUtils
.
getName
(
fileName
);
// 文件名
String
fileExtName
=
FilenameUtils
.
getExtension
(
originalFileName
);
// 文件后缀名
long
length
=
fileBuff
.
length
;
// 字节
boolean
isImage
=
isImage
(
originalFileName
);
String
mimeType
=
FileUtil
.
getMimeType
(
fileName
);
int
width
=
0
;
int
height
=
0
;
if
(
isImage
)
{
int
[]
imageInfo
=
getImageInfo
(
fileBuff
);
width
=
imageInfo
[
0
];
height
=
imageInfo
[
1
];
}
NameValuePair
[]
metaList
=
new
NameValuePair
[]{
new
NameValuePair
(
"fileName"
,
fileName
),
new
NameValuePair
(
"isImage"
,
isImage
+
""
),
new
NameValuePair
(
"mimeType"
,
mimeType
),
new
NameValuePair
(
"width"
,
width
+
""
),
new
NameValuePair
(
"height"
,
height
+
""
),
new
NameValuePair
(
"author"
,
"FastdfsUtils"
)};
boolean
status
=
false
;
String
message
=
"文件上传失败!"
;
logger
.
info
(
"startTIme:"
+
(
new
Date
().
getMinutes
()));
String
[]
responseData
=
storeFile
(
fileBuff
,
fileExtName
,
metaList
);
logger
.
info
(
"startTIme:"
+
(
new
Date
().
getMinutes
()));
Map
<
String
,
Object
>
uploadResult
=
new
HashMap
<
String
,
Object
>();
if
(
responseData
!=
null
)
{
status
=
true
;
message
=
"文件上传成功!"
;
uploadResult
.
put
(
"isImage"
,
isImage
);
if
(
isImage
)
{
uploadResult
.
put
(
"width"
,
width
);
uploadResult
.
put
(
"height"
,
height
);
}
uploadResult
.
put
(
"groupName"
,
responseData
[
0
]);
uploadResult
.
put
(
"storageFileName"
,
responseData
[
1
]);
uploadResult
.
put
(
"link"
,
responseData
[
0
]
+
"/"
+
responseData
[
1
]);
// 文件访问链接
}
uploadResult
.
put
(
"status"
,
status
);
uploadResult
.
put
(
"message"
,
message
);
uploadResult
.
put
(
"fileName"
,
fileName
);
uploadResult
.
put
(
"mimeType"
,
mimeType
);
uploadResult
.
put
(
"length"
,
length
);
return
uploadResult
;
}
private
static
int
[]
getImageInfo
(
byte
[]
fileBuff
)
{
try
{
// File转为BufferedImage
// BufferedImage buff = ImageIO.read(new
// FileImageInputStream(file));
// BufferedImage buff = ImageIO.read(file);
// byte[]转为BufferedImage
ByteArrayInputStream
in
=
new
ByteArrayInputStream
(
fileBuff
);
// 将byte[]作为输入流;
BufferedImage
image
=
ImageIO
.
read
(
in
);
// 将in作为输入流,读取图片存入image中,而这里in可以为ByteArrayInputStream();
int
width
=
image
.
getWidth
();
int
height
=
image
.
getHeight
();
return
new
int
[]{
width
,
height
};
}
catch
(
Exception
e
)
{
logger
.
error
(
"FastdfsUtils.getImageInfo时发生异常:"
,
e
);
}
return
new
int
[]{
0
,
0
};
}
private
static
String
[]
storeFile
(
byte
[]
fileBuff
,
String
fileExtName
,
NameValuePair
[]
metaList
)
{
String
[]
responseData
=
null
;
try
{
StorageClient
storageClient
=
getStorageClient
();
responseData
=
storageClient
.
upload_file
(
fileBuff
,
fileExtName
.
toLowerCase
(),
metaList
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"FastdfsUtils.storeFile时发生异常:"
,
e
);
}
return
responseData
;
}
}
src/main/java/cn/wisenergy/chnmuseum/party/service/impl/UeditorServiceFastdfsImpl.java
View file @
6c30f936
...
...
@@ -5,7 +5,7 @@ import com.baidu.ueditor.define.BaseState;
import
com.baidu.ueditor.define.MultiState
;
import
com.baidu.ueditor.define.State
;
import
com.baidu.ueditor.extend.UeditorService
;
import
cn.wisenergy.chnmuseum.party.common.dfs.Fast
dfsUtil
;
import
cn.wisenergy.chnmuseum.party.common.dfs.Fast
DFSUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Service
;
...
...
@@ -52,7 +52,7 @@ public class UeditorServiceFastdfsImpl implements UeditorService {
Map
<
String
,
Object
>
uploadResult
=
null
;
String
originalFileName
=
multipartFile
.
getOriginalFilename
();
uploadResult
=
Fast
dfsUtil
.
uploadFile
(
multipartFile
.
getBytes
(),
originalFileName
);
uploadResult
=
Fast
DFSUtils
.
uploadFile
(
multipartFile
.
getBytes
(),
originalFileName
);
// // 文件新路径
// uploadResult = FastdfsUtil.uploadPic(multipartFile.getBytes(), multipartFile.getOriginalFilename(),
...
...
@@ -83,7 +83,7 @@ public class UeditorServiceFastdfsImpl implements UeditorService {
public
State
saveBinaryFile
(
byte
[]
data
,
String
fileName
)
{
State
state
=
null
;
Map
<
String
,
Object
>
uploadResult
=
Fast
dfsUtil
.
uploadFile
(
data
,
fileName
);
Map
<
String
,
Object
>
uploadResult
=
Fast
DFSUtils
.
uploadFile
(
data
,
fileName
);
if
((
Boolean
)
uploadResult
.
get
(
"status"
))
{
state
=
new
BaseState
(
true
);
state
.
putInfo
(
"size"
,
uploadResult
.
get
(
"length"
).
toString
());
...
...
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