Commit e0b1cd76 authored by 陈精华's avatar 陈精华 Committed by kl

修复:addTask异常

parent 2144b776
...@@ -62,7 +62,7 @@ public class FileConverQueueTask { ...@@ -62,7 +62,7 @@ public class FileConverQueueTask {
FileAttribute fileAttribute = fileUtils.getFileAttribute(url); FileAttribute fileAttribute = fileUtils.getFileAttribute(url);
logger.info("正在处理转换任务,文件名称【{}】",fileAttribute.getName()); logger.info("正在处理转换任务,文件名称【{}】",fileAttribute.getName());
FileType fileType=fileAttribute.getType(); FileType fileType=fileAttribute.getType();
if(fileType.equals(FileType.compress) || fileType.equals(FileType.office)){ if(fileType.equals(FileType.compress) || fileType.equals(FileType.office) || fileType.equals(FileType.cad)){
FilePreview filePreview=previewFactory.get(fileAttribute); FilePreview filePreview=previewFactory.get(fileAttribute);
filePreview.filePreviewHandle(url, new ExtendedModelMap(), fileAttribute); filePreview.filePreviewHandle(url, new ExtendedModelMap(), fileAttribute);
} }
......
...@@ -8,11 +8,11 @@ import cn.keking.utils.CadToPdf; ...@@ -8,11 +8,11 @@ import cn.keking.utils.CadToPdf;
import cn.keking.utils.DownloadUtils; import cn.keking.utils.DownloadUtils;
import cn.keking.utils.FileUtils; import cn.keking.utils.FileUtils;
import cn.keking.utils.PdfUtils; import cn.keking.utils.PdfUtils;
import cn.keking.web.filter.ChinesePathFilter;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import java.util.List; import java.util.List;
...@@ -45,7 +45,7 @@ public class CadFilePreviewImpl implements FilePreview { ...@@ -45,7 +45,7 @@ public class CadFilePreviewImpl implements FilePreview {
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
// 预览Type,参数传了就取参数的,没传取系统默认 // 预览Type,参数传了就取参数的,没传取系统默认
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString(); String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
String baseUrl = (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0); String baseUrl = ChinesePathFilter.getBaseUrl();
String suffix=fileAttribute.getSuffix(); String suffix=fileAttribute.getSuffix();
String fileName=fileAttribute.getName(); String fileName=fileAttribute.getName();
String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf"; String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf";
......
...@@ -8,11 +8,11 @@ import cn.keking.utils.DownloadUtils; ...@@ -8,11 +8,11 @@ import cn.keking.utils.DownloadUtils;
import cn.keking.utils.FileUtils; import cn.keking.utils.FileUtils;
import cn.keking.utils.OfficeToPdf; import cn.keking.utils.OfficeToPdf;
import cn.keking.utils.PdfUtils; import cn.keking.utils.PdfUtils;
import cn.keking.web.filter.ChinesePathFilter;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import java.util.List; import java.util.List;
...@@ -45,7 +45,7 @@ public class OfficeFilePreviewImpl implements FilePreview { ...@@ -45,7 +45,7 @@ public class OfficeFilePreviewImpl implements FilePreview {
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
// 预览Type,参数传了就取参数的,没传取系统默认 // 预览Type,参数传了就取参数的,没传取系统默认
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString(); String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
String baseUrl = (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0); String baseUrl = ChinesePathFilter.getBaseUrl();
String suffix=fileAttribute.getSuffix(); String suffix=fileAttribute.getSuffix();
String fileName=fileAttribute.getName(); String fileName=fileAttribute.getName();
boolean isHtml = suffix.equalsIgnoreCase("xls") || suffix.equalsIgnoreCase("xlsx"); boolean isHtml = suffix.equalsIgnoreCase("xls") || suffix.equalsIgnoreCase("xlsx");
......
...@@ -7,10 +7,10 @@ import cn.keking.service.FilePreview; ...@@ -7,10 +7,10 @@ import cn.keking.service.FilePreview;
import cn.keking.utils.DownloadUtils; import cn.keking.utils.DownloadUtils;
import cn.keking.utils.FileUtils; import cn.keking.utils.FileUtils;
import cn.keking.utils.PdfUtils; import cn.keking.utils.PdfUtils;
import cn.keking.web.filter.ChinesePathFilter;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.context.request.RequestContextHolder;
import java.util.List; import java.util.List;
...@@ -38,7 +38,7 @@ public class PdfFilePreviewImpl implements FilePreview{ ...@@ -38,7 +38,7 @@ public class PdfFilePreviewImpl implements FilePreview{
String suffix=fileAttribute.getSuffix(); String suffix=fileAttribute.getSuffix();
String fileName=fileAttribute.getName(); String fileName=fileAttribute.getName();
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString(); String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
String baseUrl = (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0); String baseUrl = ChinesePathFilter.getBaseUrl();
model.addAttribute("pdfUrl", url); model.addAttribute("pdfUrl", url);
String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf"; String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf";
String outFilePath = fileDir + pdfName; String outFilePath = fileDir + pdfName;
......
...@@ -23,7 +23,7 @@ public class PictureFilePreviewImpl implements FilePreview { ...@@ -23,7 +23,7 @@ public class PictureFilePreviewImpl implements FilePreview {
@Override @Override
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
String fileKey=(String) RequestContextHolder.currentRequestAttributes().getAttribute("fileKey",0); String fileKey = (String) RequestContextHolder.currentRequestAttributes().getAttribute("fileKey",0);
List imgUrls = Lists.newArrayList(url); List imgUrls = Lists.newArrayList(url);
try{ try{
imgUrls.clear(); imgUrls.clear();
......
...@@ -2,6 +2,7 @@ package cn.keking.utils; ...@@ -2,6 +2,7 @@ package cn.keking.utils;
import cn.keking.config.ConfigConstants; import cn.keking.config.ConfigConstants;
import cn.keking.model.FileType; import cn.keking.model.FileType;
import cn.keking.web.filter.ChinesePathFilter;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.junrar.Archive; import com.github.junrar.Archive;
...@@ -15,7 +16,6 @@ import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; ...@@ -15,7 +16,6 @@ import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipFile; import org.apache.commons.compress.archivers.zip.ZipFile;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import java.io.*; import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -62,7 +62,7 @@ public class ZipReader { ...@@ -62,7 +62,7 @@ public class ZipReader {
String archiveSeparator = "/"; String archiveSeparator = "/";
Map<String, FileNode> appender = Maps.newHashMap(); Map<String, FileNode> appender = Maps.newHashMap();
List imgUrls=Lists.newArrayList(); List imgUrls=Lists.newArrayList();
String baseUrl= (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0); String baseUrl = ChinesePathFilter.getBaseUrl();
String archiveFileName = fileUtils.getFileNameFromPath(filePath); String archiveFileName = fileUtils.getFileNameFromPath(filePath);
try { try {
ZipFile zipFile = new ZipFile(filePath, fileUtils.getFileEncodeUTFGBK(filePath)); ZipFile zipFile = new ZipFile(filePath, fileUtils.getFileEncodeUTFGBK(filePath));
...@@ -120,7 +120,7 @@ public class ZipReader { ...@@ -120,7 +120,7 @@ public class ZipReader {
public String unRar(String filePath,String fileKey){ public String unRar(String filePath,String fileKey){
Map<String, FileNode> appender = Maps.newHashMap(); Map<String, FileNode> appender = Maps.newHashMap();
List imgUrls=Lists.newArrayList(); List imgUrls=Lists.newArrayList();
String baseUrl= (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0); String baseUrl = ChinesePathFilter.getBaseUrl();
try { try {
Archive archive = new Archive(new FileInputStream(new File(filePath))); Archive archive = new Archive(new FileInputStream(new File(filePath)));
List<FileHeader> headers = archive.getFileHeaders(); List<FileHeader> headers = archive.getFileHeaders();
...@@ -172,7 +172,7 @@ public class ZipReader { ...@@ -172,7 +172,7 @@ public class ZipReader {
String archiveSeparator = "/"; String archiveSeparator = "/";
Map<String, FileNode> appender = Maps.newHashMap(); Map<String, FileNode> appender = Maps.newHashMap();
List imgUrls=Lists.newArrayList(); List imgUrls=Lists.newArrayList();
String baseUrl= (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0); String baseUrl= ChinesePathFilter.getBaseUrl();
String archiveFileName = fileUtils.getFileNameFromPath(filePath); String archiveFileName = fileUtils.getFileNameFromPath(filePath);
try { try {
SevenZFile zipFile = new SevenZFile(new File(filePath)); SevenZFile zipFile = new SevenZFile(new File(filePath));
......
package cn.keking.web.filter; package cn.keking.web.filter;
import cn.keking.config.ConfigConstants; import cn.keking.config.ConfigConstants;
import org.springframework.web.context.request.RequestContextHolder;
import javax.servlet.*; import javax.servlet.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -17,6 +18,18 @@ public class ChinesePathFilter implements Filter { ...@@ -17,6 +18,18 @@ public class ChinesePathFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException { public void init(FilterConfig filterConfig) throws ServletException {
} }
private static String BASE_URL;
public static String getBaseUrl() {
String baseUrl;
try {
baseUrl = (String) RequestContextHolder.currentRequestAttributes().getAttribute("baseUrl",0);
} catch (Exception e) {
baseUrl = BASE_URL;
}
return baseUrl;
}
@Override @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8");
...@@ -36,6 +49,7 @@ public class ChinesePathFilter implements Filter { ...@@ -36,6 +49,7 @@ public class ChinesePathFilter implements Filter {
} else { } else {
baseUrl = localBaseUrl; baseUrl = localBaseUrl;
} }
BASE_URL = baseUrl;
request.setAttribute("baseUrl", baseUrl); request.setAttribute("baseUrl", baseUrl);
request.setAttribute("localBaseUrl", localBaseUrl); request.setAttribute("localBaseUrl", localBaseUrl);
chain.doFilter(request, response); chain.doFilter(request, response);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment