Skip to content

Commit e0b1cd7

Browse files
gitchenjhklboke
authored andcommitted
修复:addTask异常
1 parent 2144b77 commit e0b1cd7

7 files changed

Lines changed: 26 additions & 12 deletions

File tree

jodconverter-web/src/main/java/cn/keking/service/FileConverQueueTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public void run() {
6262
FileAttribute fileAttribute = fileUtils.getFileAttribute(url);
6363
logger.info("正在处理转换任务,文件名称【{}】",fileAttribute.getName());
6464
FileType fileType=fileAttribute.getType();
65-
if(fileType.equals(FileType.compress) || fileType.equals(FileType.office)){
65+
if(fileType.equals(FileType.compress) || fileType.equals(FileType.office) || fileType.equals(FileType.cad)){
6666
FilePreview filePreview=previewFactory.get(fileAttribute);
6767
filePreview.filePreviewHandle(url, new ExtendedModelMap(), fileAttribute);
6868
}

jodconverter-web/src/main/java/cn/keking/service/impl/CadFilePreviewImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
import cn.keking.utils.DownloadUtils;
99
import cn.keking.utils.FileUtils;
1010
import cn.keking.utils.PdfUtils;
11+
import cn.keking.web.filter.ChinesePathFilter;
1112
import org.springframework.beans.factory.annotation.Autowired;
1213
import org.springframework.stereotype.Service;
1314
import org.springframework.ui.Model;
1415
import org.springframework.util.StringUtils;
15-
import org.springframework.web.context.request.RequestContextHolder;
1616

1717
import java.util.List;
1818

@@ -45,7 +45,7 @@ public class CadFilePreviewImpl implements FilePreview {
4545
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
4646
// 预览Type,参数传了就取参数的,没传取系统默认
4747
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
48-
String baseUrl = (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0);
48+
String baseUrl = ChinesePathFilter.getBaseUrl();
4949
String suffix=fileAttribute.getSuffix();
5050
String fileName=fileAttribute.getName();
5151
String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf";

jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
import cn.keking.utils.FileUtils;
99
import cn.keking.utils.OfficeToPdf;
1010
import cn.keking.utils.PdfUtils;
11+
import cn.keking.web.filter.ChinesePathFilter;
1112
import org.springframework.beans.factory.annotation.Autowired;
1213
import org.springframework.stereotype.Service;
1314
import org.springframework.ui.Model;
1415
import org.springframework.util.StringUtils;
15-
import org.springframework.web.context.request.RequestContextHolder;
1616

1717
import java.util.List;
1818

@@ -45,7 +45,7 @@ public class OfficeFilePreviewImpl implements FilePreview {
4545
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
4646
// 预览Type,参数传了就取参数的,没传取系统默认
4747
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
48-
String baseUrl = (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0);
48+
String baseUrl = ChinesePathFilter.getBaseUrl();
4949
String suffix=fileAttribute.getSuffix();
5050
String fileName=fileAttribute.getName();
5151
boolean isHtml = suffix.equalsIgnoreCase("xls") || suffix.equalsIgnoreCase("xlsx");

jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import cn.keking.utils.DownloadUtils;
88
import cn.keking.utils.FileUtils;
99
import cn.keking.utils.PdfUtils;
10+
import cn.keking.web.filter.ChinesePathFilter;
1011
import org.springframework.beans.factory.annotation.Autowired;
1112
import org.springframework.stereotype.Service;
1213
import org.springframework.ui.Model;
13-
import org.springframework.web.context.request.RequestContextHolder;
1414

1515
import java.util.List;
1616

@@ -38,7 +38,7 @@ public String filePreviewHandle(String url, Model model, FileAttribute fileAttri
3838
String suffix=fileAttribute.getSuffix();
3939
String fileName=fileAttribute.getName();
4040
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
41-
String baseUrl = (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0);
41+
String baseUrl = ChinesePathFilter.getBaseUrl();
4242
model.addAttribute("pdfUrl", url);
4343
String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf";
4444
String outFilePath = fileDir + pdfName;

jodconverter-web/src/main/java/cn/keking/service/impl/PictureFilePreviewImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class PictureFilePreviewImpl implements FilePreview {
2323

2424
@Override
2525
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
26-
String fileKey=(String) RequestContextHolder.currentRequestAttributes().getAttribute("fileKey",0);
26+
String fileKey = (String) RequestContextHolder.currentRequestAttributes().getAttribute("fileKey",0);
2727
List imgUrls = Lists.newArrayList(url);
2828
try{
2929
imgUrls.clear();

jodconverter-web/src/main/java/cn/keking/utils/ZipReader.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import cn.keking.config.ConfigConstants;
44
import cn.keking.model.FileType;
5+
import cn.keking.web.filter.ChinesePathFilter;
56
import com.fasterxml.jackson.core.JsonProcessingException;
67
import com.fasterxml.jackson.databind.ObjectMapper;
78
import com.github.junrar.Archive;
@@ -15,7 +16,6 @@
1516
import org.apache.commons.compress.archivers.zip.ZipFile;
1617
import org.springframework.beans.factory.annotation.Autowired;
1718
import org.springframework.stereotype.Component;
18-
import org.springframework.web.context.request.RequestContextHolder;
1919

2020
import java.io.*;
2121
import java.math.BigDecimal;
@@ -62,7 +62,7 @@ public String readZipFile(String filePath,String fileKey) {
6262
String archiveSeparator = "/";
6363
Map<String, FileNode> appender = Maps.newHashMap();
6464
List imgUrls=Lists.newArrayList();
65-
String baseUrl= (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0);
65+
String baseUrl = ChinesePathFilter.getBaseUrl();
6666
String archiveFileName = fileUtils.getFileNameFromPath(filePath);
6767
try {
6868
ZipFile zipFile = new ZipFile(filePath, fileUtils.getFileEncodeUTFGBK(filePath));
@@ -120,7 +120,7 @@ private Enumeration<ZipArchiveEntry> sortZipEntries(Enumeration<ZipArchiveEntry>
120120
public String unRar(String filePath,String fileKey){
121121
Map<String, FileNode> appender = Maps.newHashMap();
122122
List imgUrls=Lists.newArrayList();
123-
String baseUrl= (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0);
123+
String baseUrl = ChinesePathFilter.getBaseUrl();
124124
try {
125125
Archive archive = new Archive(new FileInputStream(new File(filePath)));
126126
List<FileHeader> headers = archive.getFileHeaders();
@@ -172,7 +172,7 @@ public String read7zFile(String filePath,String fileKey) {
172172
String archiveSeparator = "/";
173173
Map<String, FileNode> appender = Maps.newHashMap();
174174
List imgUrls=Lists.newArrayList();
175-
String baseUrl= (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0);
175+
String baseUrl= ChinesePathFilter.getBaseUrl();
176176
String archiveFileName = fileUtils.getFileNameFromPath(filePath);
177177
try {
178178
SevenZFile zipFile = new SevenZFile(new File(filePath));

jodconverter-web/src/main/java/cn/keking/web/filter/ChinesePathFilter.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cn.keking.web.filter;
22

33
import cn.keking.config.ConfigConstants;
4+
import org.springframework.web.context.request.RequestContextHolder;
45

56
import javax.servlet.*;
67
import javax.servlet.http.HttpServletRequest;
@@ -17,6 +18,18 @@ public class ChinesePathFilter implements Filter {
1718
public void init(FilterConfig filterConfig) throws ServletException {
1819
}
1920

21+
private static String BASE_URL;
22+
23+
public static String getBaseUrl() {
24+
String baseUrl;
25+
try {
26+
baseUrl = (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0);
27+
} catch (Exception e) {
28+
baseUrl = BASE_URL;
29+
}
30+
return baseUrl;
31+
}
32+
2033
@Override
2134
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
2235
request.setCharacterEncoding("UTF-8");
@@ -36,6 +49,7 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
3649
} else {
3750
baseUrl = localBaseUrl;
3851
}
52+
BASE_URL = baseUrl;
3953
request.setAttribute("baseUrl", baseUrl);
4054
request.setAttribute("localBaseUrl", localBaseUrl);
4155
chain.doFilter(request, response);

0 commit comments

Comments
 (0)