我使用jsp servlet來上傳和下載文件。下載多種文件類型
我想下載多種類型的文件,所以我選擇將它們下載爲zip文件,以便不會在響應中定義每種類型的附件,當我上傳正確上傳的所有文件時爲txt和docx文件下載它們也正確下載,但是當我下載pdf或圖像文件時,它們沒有正確下載,因爲我將它們放在同一個文件夾中!
我使用jsp servlet來上傳和下載文件。下載多種文件類型
我想下載多種類型的文件,所以我選擇將它們下載爲zip文件,以便不會在響應中定義每種類型的附件,當我上傳正確上傳的所有文件時爲txt和docx文件下載它們也正確下載,但是當我下載pdf或圖像文件時,它們沒有正確下載,因爲我將它們放在同一個文件夾中!
當我進行下載TXT和docx文件它們正確下載過,但是當我下載PDF文件,圖像文件,這些文件沒有正確下載
事實:.txt
和.docx
(XML !)文件是基於文本而PDF和圖像是二進制基於。
所以,這聽起來很像您使用Reader
/Writer
而不是InputStream
/OutputStream
來讀/寫文件。
相應地修復代碼。只要你對字符的實際文件內容不感興趣,就不要使用Reader
/Writer
。它會完全破壞二進制文件。你可以找到一個下載servlet的基本例子here。
如果我存儲有關該文件的所有內容,它的名稱,長度和contentType,博客中的示例工作得很好,因此我可以在一個說明中獲得所有內容File file = fileDAO.find(fileId);
但在一個案例中,我不知道任何事情,而不是路徑,我不知道附件的類型,所以我下載所有文件爲zip。 –
palAlaa
2011-05-19 14:46:41
這只是一個基本的例子,男人:)你可以自由地編輯代碼來滿足你的需求。您可以使用'ServletContext#getMimeType()'按照第一個servlet示例的文件擴展名獲取內容類型。使用'fileDAO'的第二個servlet示例假定您已將整個文件存儲在數據庫中而不是磁盤上。然而,你已經在磁盤上存儲了這個文件。內容長度可以通過'File#length()'獲得。另見http://stackoverflow.com/questions/2244521和http://stackoverflow.com/questions/2000587 – BalusC 2011-05-19 15:00:23
咦?什麼是問題?你的背景是什麼?從什麼下載?用什麼? – Kaj 2011-05-19 14:27:15
.. Java?從島上下載? – 2011-05-19 14:28:19
不使用servlet進行下載。 – palAlaa 2011-05-19 14:32:06