2010-05-18 58 views
0

我想在jsp頁面中上傳zip文件,並在用戶選擇並上傳文件後將其發送到其他jsp頁面。將zip文件上傳到jsp並在另一個jsp中提取內容

在這第二頁我想要

1.)提取上傳的zip文件。

2)閱讀所提取的文件(S某些內容),並允許用戶改變/編輯

3)保存文件的用戶的變化。

4.)再次壓縮文件並將其保存到另一個目的地。

請大家提出一個解決方案的粗略提示,因爲我被困在獲取上傳文件的階段,並將用戶重定向到第二個jsp。

+1

jsp用於視圖層,對於控制器,最好使用servlets/structs actions/spring controllers/etc – 2010-05-18 07:55:50

回答

2

我要上傳在JSP頁面的壓縮文件...

使用以下類型的表格:

<form action="upload" method="post" enctype="multipart/form-data"> 
    <input type="file"> 
    <input type="submit"> 
</form> 

...並且用戶發送到另一個jsp頁面後,他選擇並上傳文件。

等一等。您不應該將JSP用於業務邏輯。原始Java代碼不屬於JSP文件,而是屬於真正的Java類。讓表單提交到Servlet,後者依次處理文件上傳並最終將請求轉發到JSP頁面以顯示某些結果。

1)解壓上傳的zip文件。

使用Apache Commons FileUpload獲取上傳的文件。您可以在用戶指南常見問題的主頁中找到代碼示例和提示&技巧(!)。

您應該以包含上傳文件的InputStream結束。

一旦有了,那麼只需使用java.util.zip.ZipInputStream API讀取上傳的文件。

2)閱讀所提取的文件(S某些內容),並允許用戶改變/編輯的模型對象(JavaBeans的)數據

弄個,將它們存儲在請求或會話範圍,並使用JSP/EL在HTML輸入字段中顯示模型值。例如。

<input type="text" name="foo" value="${fn:escapeXml(bean.foo)}"> 

JSTLfn:escapeXml是隻是爲了防止XSS

3)保存用戶對文件的更改。

讓表單提交給一個servlet,收集新的輸入,並將其寫入某個文件。

4)再次壓縮文件並將其保存到另一個目的地。

使用ZipOutputStream


又見

+0

謝謝你的回答。我得到它的工作! – sanjayav 2010-05-19 08:00:18

+0

不客氣。 – BalusC 2010-05-19 11:38:17

0

您可能會在servlet中獲取上傳的zip文件。

對於你的步驟1中,提取使用http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/ZipFile.html

程序zip文件內容是這裏http://java.sun.com/developer/technicalArticles/Programming/compression/

實施例是這裏http://www.devx.com/getHelpOn/10MinuteSolution/20447

步驟2和3是簡單

創建的步驟4中請再次郵編http://java.sun.com/developer/technicalArticles/Programming/compression/(見該頁的郵政編碼)

相關問題