0
這裏zip文件在內存中,我使用創建一個zip文件的代碼:錯誤使用Java創建
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream out = new ZipOutputStream(baos);
try {
for(int i=0; i<docId.length; i++){
BoxDotComDocumentManager docman = new BoxDotComDocumentManager();
Document d = docman.get(docId[i]);
ZipEntry entry = new ZipEntry(d.getFileName());
entry.setSize(d.getFileBytes().length);
out.putNextEntry(entry);
out.write(d.getFileBytes());
resp.setContentType("application/zip");
resp.setHeader("Content-Disposition", "attachment; filename="+ "zipdemo.zip");
out.closeEntry();
}
} catch (Exception e) {
System.out.println("E = " + e);
}
try {
resp.getOutputStream().write(baos.toByteArray());
resp.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
}
finally {
baos.close();
out.close();
}
zip文件被返回給瀏覽器被下載,但是當我嘗試下載文件我收到一個錯誤,指出文件無法下載,因爲zip文件無效。
文檔是一個對象,其中包含有關包含實際文件的文件的所有信息。
任何想法,我做錯了什麼?我已經嘗試了很多這樣的排列,他們都沒有工作。先謝謝你。
Keith
首先:當您遇到致命錯誤時,*不要*只打印堆棧跟蹤。使請求失敗。另外,不要光禿禿的Exceptino - 它幾乎總是錯誤的方法。哦,你爲什麼要在循環的每次迭代中設置標題? – 2012-03-06 23:00:19
喬恩 - 試圖做一個快樂的小路工作,然後我會妥善處理所有的異常,與標題相同的東西;讓他們在循環或外部不會改變錯誤。他們將被移出循環。 – 2012-03-06 23:06:36
但它使你很容易錯失異常。國際海事組織,它是值得的異常處理權*首先*,以便您可以告訴你什麼時候真正經歷了快樂的道路... – 2012-03-06 23:08:04