From cc7f57619fd09f68582b748a3580402717b84c50 Mon Sep 17 00:00:00 2001 From: david-PC\david <kimi42345@gmail.com> Date: 星期二, 12 六月 2018 15:27:15 +0800 Subject: [PATCH] 停止跟踪项目文件 --- source/my/frame/src/frame/file/office/Engine.java | 62 +++++++++++++++++++++++++------ 1 files changed, 50 insertions(+), 12 deletions(-) diff --git a/source/my/frame/src/frame/file/office/Engine.java b/source/my/frame/src/frame/file/office/Engine.java index 4723787..2623e37 100644 --- a/source/my/frame/src/frame/file/office/Engine.java +++ b/source/my/frame/src/frame/file/office/Engine.java @@ -1,10 +1,15 @@ package frame.file.office; import java.io.Console; +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; import java.net.URL; import java.net.URLEncoder; import java.util.List; +import java.util.Map; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -14,10 +19,19 @@ import com.sun.corba.se.impl.protocol.JIDLLocalCRDImpl; +import frame.call.writer.JsonWriter; +import frame.config.Configer; import frame.data.DataContext; import frame.file.FileIOContainer; import frame.file.UploadResult; +import frame.file.office.excel.DownloadResult; +import frame.file.office.excel.ExcelLoader; +import frame.file.office.excel.ExcelWriter; import frame.file.processor.Monitor; +import frame.upload.FileItem; +import frame.upload.FileUploadException; +import frame.upload.disk.DiskFileItemFactory; +import frame.upload.servlet.ServletFileUpload; import frame.util.Util; public class Engine { @@ -27,6 +41,9 @@ private Logger logger; private ExcelLoader excelLoader; + private static int MAX_CACHE_SIZE = 30 * 1024 * 1024; + private static int MAX_FILE_SIZE = 100 * 1024 * 1024; + private Engine() { logger = LoggerFactory.getLogger(this.getClass()); excelLoader = new ExcelLoader(logger); @@ -43,29 +60,34 @@ } } - public static void download(HttpServletResponse response, String iocode, DataContext dataContext, Map<String, String> parameterProvider) { + public static void download(HttpServletResponse response, String iocode, DataContext dataContext, Map<String, String> parameterProvider) throws IOException { getInstance(); StringBuilder log = new StringBuilder(); try { - new JIDLLocalCRDImpl(orb, scid, ior) FileIOContainer.load(); - ExcelWriter excelWriter = new ExcelWriter(Monitor.getDownloadProgressor(), parameterProvider); +// ExcelWriter excelWriter = new ExcelWriter(Monitor.getDownloadProgressor(), parameterProvider); + ExcelWriter excelWriter = new ExcelWriter(Monitor.getDownloadProgressor()); DownloadResult result = excelWriter.writeOneFile(iocode, dataContext); - + String filename = result.getFilename(); response.addHeader("Content-Type", "application/octet-stream"); filename = URLEncoder.encode(filename, "utf-8"); response.addHeader("Content-Disposition", "attachment;filename=" + filename); - response.TransmitFile(result.getPath()); + ServletOutputStream outputStream = response.getOutputStream(); + String path = result.getPath(); + File file = new File(path); + //TODO output +// outputStream.write(b) +// response.TransmitFile(result.getPath()); } catch (Exception e) { - JsonBuilder json = new JsonBuilder(); + JsonWriter json = new JsonWriter(); json.beginObject(); json.addValue("log", log.toString()); json.addValue("error", e.getMessage()); - + json.beginArray("detail"); List<String> details = Monitor.getDownloadProgressor().getMessageList(); @@ -75,19 +97,24 @@ json.endArray(); json.endObject(); - - response.Write(json.ToString()); + PrintWriter writer = response.getWriter(); + writer.write(json.toString()); } } - public static UploadResult upload(String iocode, FileInfo file, HttpServletRequest request) { + public static UploadResult upload(String iocode, File file, HttpServletRequest request) throws Exception { UploadResult result = new UploadResult(request); result.writeBegin(); try { getInstance(); FileIOContainer.load(); - instance.excelLoader.loadOneFile(result, iocode, file); + + + LoadManager manager = new LoadManager(result, iocode); + manager.setRequest(request); + instance.excelLoader.loadFiles(result, iocode, loadUploadFileList); +// instance.excelLoader.loadOneFile(result, iocode, file); } catch (Exception e){ result.fail("error", e.getMessage()); @@ -99,7 +126,18 @@ return result; } - public static UploadResult testDataProcess(String iocode, HttpServletRequest request) { + private static List<FileItem> loadUploadFile(HttpServletRequest request) throws FileUploadException { + + DiskFileItemFactory diskFileFactory = new DiskFileItemFactory(); + diskFileFactory.setSizeThreshold(MAX_CACHE_SIZE); + diskFileFactory.setRepository(new File(Configer.getParam("repository"))); + + ServletFileUpload fileUpload = new ServletFileUpload(diskFileFactory); + fileUpload.setSizeMax(MAX_FILE_SIZE); + return fileUpload.parseRequest(request); + } + + public static UploadResult testDataProcess(String iocode, HttpServletRequest request) throws Exception { UploadResult result = new UploadResult(request); result.writeBegin(); -- Gitblit v1.8.0