| | |
| | | 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; |
| | | |
| | |
| | | |
| | | 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 { |
| | |
| | | private static Object locker = new Object(); |
| | | 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); |
| | |
| | | } |
| | | } |
| | | |
| | | 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(); |
| | | |
| | |
| | | |
| | | 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()); |
| | |
| | | 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(); |