From f240ac3ccd37c541cab2c21cfc433d3510999a3c Mon Sep 17 00:00:00 2001
From: david-PC\david <kimi42345@gmail.com>
Date: 星期二, 12 六月 2018 17:12:23 +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