Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
slm-fileview
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
梁杰芳
slm-fileview
Commits
9c83860e
Commit
9c83860e
authored
Dec 27, 2020
by
chenkailing
Committed by
kl
Dec 27, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
抽象通用的预览异常接口实现
parent
1f197023
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
68 additions
and
69 deletions
+68
-69
CadFilePreviewImpl.java
.../main/java/cn/keking/service/impl/CadFilePreviewImpl.java
+6
-9
CompressFilePreviewImpl.java
.../java/cn/keking/service/impl/CompressFilePreviewImpl.java
+5
-7
MediaFilePreviewImpl.java
...ain/java/cn/keking/service/impl/MediaFilePreviewImpl.java
+5
-5
OfficeFilePreviewImpl.java
...in/java/cn/keking/service/impl/OfficeFilePreviewImpl.java
+9
-11
OtherFilePreviewImpl.java
...ain/java/cn/keking/service/impl/OtherFilePreviewImpl.java
+15
-3
PdfFilePreviewImpl.java
.../main/java/cn/keking/service/impl/PdfFilePreviewImpl.java
+7
-12
PictureFilePreviewImpl.java
...n/java/cn/keking/service/impl/PictureFilePreviewImpl.java
+4
-4
SimTextFilePreviewImpl.java
...n/java/cn/keking/service/impl/SimTextFilePreviewImpl.java
+8
-6
XmlFilePreviewImpl.java
.../main/java/cn/keking/service/impl/XmlFilePreviewImpl.java
+0
-1
OnlinePreviewController.java
...ava/cn/keking/web/controller/OnlinePreviewController.java
+9
-11
No files found.
server/src/main/java/cn/keking/service/impl/CadFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -25,9 +25,11 @@ public class CadFilePreviewImpl implements FilePreview {
private
static
final
String
FILE_DIR
=
ConfigConstants
.
getFileDir
();
private
final
FileHandlerService
fileHandlerService
;
private
final
OtherFilePreviewImpl
otherFilePreview
;
public
CadFilePreviewImpl
(
FileHandlerService
fileHandlerService
)
{
public
CadFilePreviewImpl
(
FileHandlerService
fileHandlerService
,
OtherFilePreviewImpl
otherFilePreview
)
{
this
.
fileHandlerService
=
fileHandlerService
;
this
.
otherFilePreview
=
otherFilePreview
;
}
@Override
...
...
@@ -35,7 +37,6 @@ public class CadFilePreviewImpl implements FilePreview {
// 预览Type,参数传了就取参数的,没传取系统默认
String
officePreviewType
=
model
.
asMap
().
get
(
"officePreviewType"
)
==
null
?
ConfigConstants
.
getOfficePreviewType
()
:
model
.
asMap
().
get
(
"officePreviewType"
).
toString
();
String
baseUrl
=
BaseUrlFilter
.
getBaseUrl
();
String
suffix
=
fileAttribute
.
getSuffix
();
String
fileName
=
fileAttribute
.
getName
();
String
pdfName
=
fileName
.
substring
(
0
,
fileName
.
lastIndexOf
(
"."
)
+
1
)
+
"pdf"
;
String
outFilePath
=
FILE_DIR
+
pdfName
;
...
...
@@ -44,17 +45,13 @@ public class CadFilePreviewImpl implements FilePreview {
String
filePath
;
ReturnResponse
<
String
>
response
=
DownloadUtils
.
downLoad
(
fileAttribute
,
null
);
if
(
response
.
isFailure
())
{
model
.
addAttribute
(
"fileType"
,
suffix
);
model
.
addAttribute
(
"msg"
,
response
.
getMsg
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
response
.
getMsg
());
}
filePath
=
response
.
getContent
();
if
(
StringUtils
.
hasText
(
outFilePath
))
{
boolean
convertResult
=
fileHandlerService
.
cadToPdf
(
filePath
,
outFilePath
);
if
(!
convertResult
)
{
model
.
addAttribute
(
"fileType"
,
suffix
);
model
.
addAttribute
(
"msg"
,
"cad文件转换异常,请联系管理员"
);
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
"cad文件转换异常,请联系管理员"
);
}
if
(
ConfigConstants
.
isCacheEnabled
())
{
// 加入缓存
...
...
@@ -63,7 +60,7 @@ public class CadFilePreviewImpl implements FilePreview {
}
}
if
(
baseUrl
!=
null
&&
(
OFFICE_PREVIEW_TYPE_IMAGE
.
equals
(
officePreviewType
)
||
OFFICE_PREVIEW_TYPE_ALL_IMAGES
.
equals
(
officePreviewType
)))
{
return
getPreviewType
(
model
,
fileAttribute
,
officePreviewType
,
baseUrl
,
pdfName
,
outFilePath
,
fileHandlerService
,
OFFICE_PREVIEW_TYPE_IMAGE
);
return
getPreviewType
(
model
,
fileAttribute
,
officePreviewType
,
baseUrl
,
pdfName
,
outFilePath
,
fileHandlerService
,
OFFICE_PREVIEW_TYPE_IMAGE
,
otherFilePreview
);
}
model
.
addAttribute
(
"pdfUrl"
,
pdfName
);
return
"pdf"
;
...
...
server/src/main/java/cn/keking/service/impl/CompressFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -20,10 +20,12 @@ public class CompressFilePreviewImpl implements FilePreview {
private
final
FileHandlerService
fileHandlerService
;
private
final
CompressFileReader
compressFileReader
;
private
final
OtherFilePreviewImpl
otherFilePreview
;
public
CompressFilePreviewImpl
(
FileHandlerService
fileHandlerService
,
CompressFileReader
compressFileReader
)
{
public
CompressFilePreviewImpl
(
FileHandlerService
fileHandlerService
,
CompressFileReader
compressFileReader
,
OtherFilePreviewImpl
otherFilePreview
)
{
this
.
fileHandlerService
=
fileHandlerService
;
this
.
compressFileReader
=
compressFileReader
;
this
.
otherFilePreview
=
otherFilePreview
;
}
@Override
...
...
@@ -35,9 +37,7 @@ public class CompressFilePreviewImpl implements FilePreview {
if
(!
StringUtils
.
hasText
(
fileHandlerService
.
getConvertedFile
(
fileName
))
||
!
ConfigConstants
.
isCacheEnabled
())
{
ReturnResponse
<
String
>
response
=
DownloadUtils
.
downLoad
(
fileAttribute
,
fileName
);
if
(
response
.
isFailure
())
{
model
.
addAttribute
(
"fileType"
,
suffix
);
model
.
addAttribute
(
"msg"
,
response
.
getMsg
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
response
.
getMsg
());
}
String
filePath
=
response
.
getContent
();
if
(
"zip"
.
equalsIgnoreCase
(
suffix
)
||
"jar"
.
equalsIgnoreCase
(
suffix
)
||
"gzip"
.
equalsIgnoreCase
(
suffix
))
{
...
...
@@ -57,9 +57,7 @@ public class CompressFilePreviewImpl implements FilePreview {
model
.
addAttribute
(
"fileTree"
,
fileTree
);
return
"compress"
;
}
else
{
model
.
addAttribute
(
"fileType"
,
suffix
);
model
.
addAttribute
(
"msg"
,
"压缩文件类型不受支持,尝试在压缩的时候选择RAR4格式"
);
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
"压缩文件类型不受支持,尝试在压缩的时候选择RAR4格式"
);
}
}
}
server/src/main/java/cn/keking/service/impl/MediaFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -19,9 +19,11 @@ import org.springframework.ui.Model;
public
class
MediaFilePreviewImpl
implements
FilePreview
{
private
final
FileHandlerService
fileHandlerService
;
private
final
OtherFilePreviewImpl
otherFilePreview
;
public
MediaFilePreviewImpl
(
FileHandlerService
fileHandlerService
)
{
public
MediaFilePreviewImpl
(
FileHandlerService
fileHandlerService
,
OtherFilePreviewImpl
otherFilePreview
)
{
this
.
fileHandlerService
=
fileHandlerService
;
this
.
otherFilePreview
=
otherFilePreview
;
}
@Override
...
...
@@ -29,10 +31,8 @@ public class MediaFilePreviewImpl implements FilePreview {
// 不是http开头,浏览器不能直接访问,需下载到本地
if
(
url
!=
null
&&
!
url
.
toLowerCase
().
startsWith
(
"http"
))
{
ReturnResponse
<
String
>
response
=
DownloadUtils
.
downLoad
(
fileAttribute
,
fileAttribute
.
getName
());
if
(!
response
.
isSuccess
())
{
model
.
addAttribute
(
"fileType"
,
fileAttribute
.
getSuffix
());
model
.
addAttribute
(
"msg"
,
response
.
getMsg
());
return
"fileNotSupported"
;
if
(
response
.
isFailure
())
{
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
response
.
getMsg
());
}
else
{
model
.
addAttribute
(
"mediaUrl"
,
BaseUrlFilter
.
getBaseUrl
()
+
fileHandlerService
.
getRelativePath
(
response
.
getContent
()));
}
...
...
server/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -27,10 +27,12 @@ public class OfficeFilePreviewImpl implements FilePreview {
private
final
FileHandlerService
fileHandlerService
;
private
final
OfficeToPdfService
officeToPdfService
;
private
final
OtherFilePreviewImpl
otherFilePreview
;
public
OfficeFilePreviewImpl
(
FileHandlerService
fileHandlerService
,
OfficeToPdfService
officeToPdfService
)
{
public
OfficeFilePreviewImpl
(
FileHandlerService
fileHandlerService
,
OfficeToPdfService
officeToPdfService
,
OtherFilePreviewImpl
otherFilePreview
)
{
this
.
fileHandlerService
=
fileHandlerService
;
this
.
officeToPdfService
=
officeToPdfService
;
this
.
otherFilePreview
=
otherFilePreview
;
}
@Override
...
...
@@ -38,8 +40,8 @@ public class OfficeFilePreviewImpl implements FilePreview {
// 预览Type,参数传了就取参数的,没传取系统默认
String
officePreviewType
=
fileAttribute
.
getOfficePreviewType
();
String
baseUrl
=
BaseUrlFilter
.
getBaseUrl
();
String
suffix
=
fileAttribute
.
getSuffix
();
String
fileName
=
fileAttribute
.
getName
();
String
suffix
=
fileAttribute
.
getSuffix
();
String
fileName
=
fileAttribute
.
getName
();
boolean
isHtml
=
suffix
.
equalsIgnoreCase
(
"xls"
)
||
suffix
.
equalsIgnoreCase
(
"xlsx"
);
String
pdfName
=
fileName
.
substring
(
0
,
fileName
.
lastIndexOf
(
"."
)
+
1
)
+
(
isHtml
?
"html"
:
"pdf"
);
String
outFilePath
=
FILE_DIR
+
pdfName
;
...
...
@@ -48,9 +50,7 @@ public class OfficeFilePreviewImpl implements FilePreview {
String
filePath
;
ReturnResponse
<
String
>
response
=
DownloadUtils
.
downLoad
(
fileAttribute
,
null
);
if
(
response
.
isFailure
())
{
model
.
addAttribute
(
"fileType"
,
suffix
);
model
.
addAttribute
(
"msg"
,
response
.
getMsg
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
response
.
getMsg
());
}
filePath
=
response
.
getContent
();
if
(
StringUtils
.
hasText
(
outFilePath
))
{
...
...
@@ -66,18 +66,16 @@ public class OfficeFilePreviewImpl implements FilePreview {
}
}
if
(!
isHtml
&&
baseUrl
!=
null
&&
(
OFFICE_PREVIEW_TYPE_IMAGE
.
equals
(
officePreviewType
)
||
OFFICE_PREVIEW_TYPE_ALL_IMAGES
.
equals
(
officePreviewType
)))
{
return
getPreviewType
(
model
,
fileAttribute
,
officePreviewType
,
baseUrl
,
pdfName
,
outFilePath
,
fileHandlerService
,
OFFICE_PREVIEW_TYPE_IMAGE
);
return
getPreviewType
(
model
,
fileAttribute
,
officePreviewType
,
baseUrl
,
pdfName
,
outFilePath
,
fileHandlerService
,
OFFICE_PREVIEW_TYPE_IMAGE
,
otherFilePreview
);
}
model
.
addAttribute
(
"pdfUrl"
,
pdfName
);
return
isHtml
?
"html"
:
"pdf"
;
}
static
String
getPreviewType
(
Model
model
,
FileAttribute
fileAttribute
,
String
officePreviewType
,
String
baseUrl
,
String
pdfName
,
String
outFilePath
,
FileHandlerService
fileHandlerService
,
String
officePreviewTypeImage
)
{
static
String
getPreviewType
(
Model
model
,
FileAttribute
fileAttribute
,
String
officePreviewType
,
String
baseUrl
,
String
pdfName
,
String
outFilePath
,
FileHandlerService
fileHandlerService
,
String
officePreviewTypeImage
,
OtherFilePreviewImpl
otherFilePreview
)
{
List
<
String
>
imageUrls
=
fileHandlerService
.
pdf2jpg
(
outFilePath
,
pdfName
,
baseUrl
);
if
(
imageUrls
==
null
||
imageUrls
.
size
()
<
1
)
{
model
.
addAttribute
(
"msg"
,
"office转图片异常,请联系管理员"
);
model
.
addAttribute
(
"fileType"
,
fileAttribute
.
getSuffix
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
"office转图片异常,请联系管理员"
);
}
model
.
addAttribute
(
"imgurls"
,
imageUrls
);
model
.
addAttribute
(
"currentUrl"
,
imageUrls
.
get
(
0
));
...
...
server/src/main/java/cn/keking/service/impl/OtherFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -11,10 +11,22 @@ import org.springframework.ui.Model;
*/
@Service
public
class
OtherFilePreviewImpl
implements
FilePreview
{
public
static
final
String
NOT_SUPPORTED_FILE_PAGE
=
"fileNotSupported"
;
@Override
public
String
filePreviewHandle
(
String
url
,
Model
model
,
FileAttribute
fileAttribute
)
{
model
.
addAttribute
(
"fileType"
,
fileAttribute
.
getSuffix
());
model
.
addAttribute
(
"msg"
,
"系统还不支持该格式文件的在线预览"
);
return
"fileNotSupported"
;
return
this
.
notSupportedFile
(
model
,
fileAttribute
,
"系统还不支持该格式文件的在线预览"
);
}
/**
* 通用的预览失败,导向到不支持的文件响应页面
*
* @return 页面
*/
public
String
notSupportedFile
(
Model
model
,
FileAttribute
fileAttribute
,
String
errMsg
)
{
model
.
addAttribute
(
"fileType"
,
fileAttribute
.
getSuffix
());
model
.
addAttribute
(
"msg"
,
errMsg
);
return
NOT_SUPPORTED_FILE_PAGE
;
}
}
server/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -20,16 +20,17 @@ import java.util.List;
public
class
PdfFilePreviewImpl
implements
FilePreview
{
private
final
FileHandlerService
fileHandlerService
;
private
final
OtherFilePreviewImpl
otherFilePreview
;
private
static
final
String
FILE_DIR
=
ConfigConstants
.
getFileDir
();
public
PdfFilePreviewImpl
(
FileHandlerService
fileHandlerService
)
{
public
PdfFilePreviewImpl
(
FileHandlerService
fileHandlerService
,
OtherFilePreviewImpl
otherFilePreview
)
{
this
.
fileHandlerService
=
fileHandlerService
;
this
.
otherFilePreview
=
otherFilePreview
;
}
@Override
public
String
filePreviewHandle
(
String
url
,
Model
model
,
FileAttribute
fileAttribute
)
{
String
suffix
=
fileAttribute
.
getSuffix
();
String
fileName
=
fileAttribute
.
getName
();
String
fileName
=
fileAttribute
.
getName
();
String
officePreviewType
=
fileAttribute
.
getOfficePreviewType
();
String
baseUrl
=
BaseUrlFilter
.
getBaseUrl
();
String
pdfName
=
fileName
.
substring
(
0
,
fileName
.
lastIndexOf
(
"."
)
+
1
)
+
"pdf"
;
...
...
@@ -39,9 +40,7 @@ public class PdfFilePreviewImpl implements FilePreview {
if
(!
fileHandlerService
.
listConvertedFiles
().
containsKey
(
pdfName
)
||
!
ConfigConstants
.
isCacheEnabled
())
{
ReturnResponse
<
String
>
response
=
DownloadUtils
.
downLoad
(
fileAttribute
,
fileName
);
if
(
response
.
isFailure
())
{
model
.
addAttribute
(
"fileType"
,
suffix
);
model
.
addAttribute
(
"msg"
,
response
.
getMsg
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
response
.
getMsg
());
}
outFilePath
=
response
.
getContent
();
if
(
ConfigConstants
.
isCacheEnabled
())
{
...
...
@@ -51,9 +50,7 @@ public class PdfFilePreviewImpl implements FilePreview {
}
List
<
String
>
imageUrls
=
fileHandlerService
.
pdf2jpg
(
outFilePath
,
pdfName
,
baseUrl
);
if
(
imageUrls
==
null
||
imageUrls
.
size
()
<
1
)
{
model
.
addAttribute
(
"msg"
,
"pdf转图片异常,请联系管理员"
);
model
.
addAttribute
(
"fileType"
,
fileAttribute
.
getSuffix
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
"pdf转图片异常,请联系管理员"
);
}
model
.
addAttribute
(
"imgurls"
,
imageUrls
);
model
.
addAttribute
(
"currentUrl"
,
imageUrls
.
get
(
0
));
...
...
@@ -68,9 +65,7 @@ public class PdfFilePreviewImpl implements FilePreview {
if
(!
fileHandlerService
.
listConvertedFiles
().
containsKey
(
pdfName
)
||
!
ConfigConstants
.
isCacheEnabled
())
{
ReturnResponse
<
String
>
response
=
DownloadUtils
.
downLoad
(
fileAttribute
,
pdfName
);
if
(
response
.
isFailure
())
{
model
.
addAttribute
(
"fileType"
,
suffix
);
model
.
addAttribute
(
"msg"
,
response
.
getMsg
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
response
.
getMsg
());
}
model
.
addAttribute
(
"pdfUrl"
,
fileHandlerService
.
getRelativePath
(
response
.
getContent
()));
if
(
ConfigConstants
.
isCacheEnabled
())
{
...
...
server/src/main/java/cn/keking/service/impl/PictureFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -19,9 +19,11 @@ import java.util.List;
public
class
PictureFilePreviewImpl
implements
FilePreview
{
private
final
FileHandlerService
fileHandlerService
;
private
final
OtherFilePreviewImpl
otherFilePreview
;
public
PictureFilePreviewImpl
(
FileHandlerService
fileHandlerService
)
{
public
PictureFilePreviewImpl
(
FileHandlerService
fileHandlerService
,
OtherFilePreviewImpl
otherFilePreview
)
{
this
.
fileHandlerService
=
fileHandlerService
;
this
.
otherFilePreview
=
otherFilePreview
;
}
@Override
...
...
@@ -37,9 +39,7 @@ public class PictureFilePreviewImpl implements FilePreview {
if
(
url
!=
null
&&
!
url
.
toLowerCase
().
startsWith
(
"http"
))
{
ReturnResponse
<
String
>
response
=
DownloadUtils
.
downLoad
(
fileAttribute
,
null
);
if
(
response
.
isFailure
())
{
model
.
addAttribute
(
"fileType"
,
fileAttribute
.
getSuffix
());
model
.
addAttribute
(
"msg"
,
response
.
getMsg
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
response
.
getMsg
());
}
else
{
String
file
=
fileHandlerService
.
getRelativePath
(
response
.
getContent
());
imgUrls
.
clear
();
...
...
server/src/main/java/cn/keking/service/impl/SimTextFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -23,23 +23,25 @@ public class SimTextFilePreviewImpl implements FilePreview {
public
static
final
String
TEXT_TYPE
=
"textType"
;
public
static
final
String
DEFAULT_TEXT_TYPE
=
"simText"
;
private
final
OtherFilePreviewImpl
otherFilePreview
;
public
SimTextFilePreviewImpl
(
OtherFilePreviewImpl
otherFilePreview
)
{
this
.
otherFilePreview
=
otherFilePreview
;
}
@Override
public
String
filePreviewHandle
(
String
url
,
Model
model
,
FileAttribute
fileAttribute
)
{
String
fileName
=
fileAttribute
.
getName
();
ReturnResponse
<
String
>
response
=
DownloadUtils
.
downLoad
(
fileAttribute
,
fileName
);
if
(
response
.
isFailure
())
{
model
.
addAttribute
(
"msg"
,
response
.
getMsg
());
model
.
addAttribute
(
"fileType"
,
fileAttribute
.
getSuffix
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
response
.
getMsg
());
}
try
{
File
originFile
=
new
File
(
response
.
getContent
());
String
xmlString
=
FileUtils
.
readFileToString
(
originFile
,
StandardCharsets
.
UTF_8
);
model
.
addAttribute
(
"textData"
,
Base64Utils
.
encodeToString
(
xmlString
.
getBytes
()));
}
catch
(
IOException
e
)
{
model
.
addAttribute
(
"msg"
,
e
.
getLocalizedMessage
());
model
.
addAttribute
(
"fileType"
,
fileAttribute
.
getSuffix
());
return
"fileNotSupported"
;
return
otherFilePreview
.
notSupportedFile
(
model
,
fileAttribute
,
e
.
getLocalizedMessage
());
}
if
(!
model
.
containsAttribute
(
TEXT_TYPE
))
{
model
.
addAttribute
(
TEXT_TYPE
,
DEFAULT_TEXT_TYPE
);
...
...
server/src/main/java/cn/keking/service/impl/XmlFilePreviewImpl.java
View file @
9c83860e
...
...
@@ -20,7 +20,6 @@ public class XmlFilePreviewImpl implements FilePreview {
this
.
simTextFilePreview
=
simTextFilePreview
;
}
@Override
public
String
filePreviewHandle
(
String
url
,
Model
model
,
FileAttribute
fileAttribute
)
{
model
.
addAttribute
(
TEXT_TYPE
,
"xml"
);
...
...
server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java
View file @
9c83860e
...
...
@@ -7,7 +7,6 @@ import cn.keking.service.FilePreviewFactory;
import
cn.keking.service.cache.CacheService
;
import
cn.keking.utils.DownloadUtils
;
import
cn.keking.service.FileHandlerService
;
import
com.thoughtworks.xstream.core.util.Base64JavaUtilCodec
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Controller
;
...
...
@@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.net.URLDecoder
;
import
java.util.Arrays
;
import
java.util.List
;
...
...
@@ -45,25 +43,24 @@ public class OnlinePreviewController {
@RequestMapping
(
value
=
"/onlinePreview"
)
public
String
onlinePreview
(
String
url
,
Model
model
,
HttpServletRequest
req
)
{
String
fileUrl
=
new
String
(
Base64Utils
.
decodeFromString
(
url
));
FileAttribute
fileAttribute
=
fileHandlerService
.
getFileAttribute
(
fileUrl
,
req
);
FileAttribute
fileAttribute
=
fileHandlerService
.
getFileAttribute
(
fileUrl
,
req
);
FilePreview
filePreview
=
previewFactory
.
get
(
fileAttribute
);
logger
.
info
(
"预览文件url:{},previewType:{}"
,
fileUrl
,
fileAttribute
.
getType
());
return
filePreview
.
filePreviewHandle
(
fileUrl
,
model
,
fileAttribute
);
}
@RequestMapping
(
value
=
"/picturesPreview"
)
public
String
picturesPreview
(
Model
model
,
HttpServletRequest
req
)
throws
UnsupportedEncodingException
{
String
urls
=
req
.
getParameter
(
"urls"
);
public
String
picturesPreview
(
String
urls
,
Model
model
,
HttpServletRequest
req
)
throws
UnsupportedEncodingException
{
String
fileUrls
=
new
String
(
Base64Utils
.
decodeFromString
(
urls
)
);
String
currentUrl
=
req
.
getParameter
(
"currentUrl"
);
logger
.
info
(
"预览文件url:{},urls:{}"
,
currentUrl
,
urls
);
logger
.
info
(
"预览文件url:{},urls:{}"
,
fileUrls
,
urls
);
// 路径转码
String
decodedUrl
=
URLDecoder
.
decode
(
urls
,
"utf-8"
);
String
decodedCurrentUrl
=
URLDecoder
.
decode
(
currentUrl
,
"utf-8"
);
String
decodedCurrentUrl
=
new
String
(
Base64Utils
.
decodeFromString
(
currentUrl
));
// 抽取文件并返回文件列表
String
[]
imgs
=
decodedUrl
.
split
(
"\\|"
);
String
[]
imgs
=
fileUrls
.
split
(
"\\|"
);
List
<
String
>
imgUrls
=
Arrays
.
asList
(
imgs
);
model
.
addAttribute
(
"imgUrls"
,
imgUrls
);
model
.
addAttribute
(
"currentUrl"
,
decodedCurrentUrl
);
model
.
addAttribute
(
"currentUrl"
,
decodedCurrentUrl
);
return
"picture"
;
}
...
...
@@ -71,7 +68,7 @@ public class OnlinePreviewController {
* 根据url获取文件内容
* 当pdfjs读取存在跨域问题的文件时将通过此接口读取
*
* @param urlPath url
* @param urlPath
url
* @param response response
*/
@RequestMapping
(
value
=
"/getCorsFile"
,
method
=
RequestMethod
.
GET
)
...
...
@@ -87,6 +84,7 @@ public class OnlinePreviewController {
/**
* 通过api接口入队
*
* @param url 请编码后在入队
*/
@RequestMapping
(
"/addTask"
)
...
...
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