2012-12-06 45 views
2

我想創建一個控制器來使用流式傳輸方法下載和上傳文件,在我的情況下,所有文件都以Blob的形式保存在數據庫中。我閱讀了Jboss Netty的文檔,但我不認爲在我的情況下是否是最好的解決方案。
有沒有人做過這樣的事情?Streaming上傳/下載

+0

您確定要將文件保存在數據庫中嗎?我剛剛提煉了一個保存在數據庫中的應用程序,因爲幾個月後(當有大量數據時)的性能是一場噩夢.. –

+1

我不直接將文件保存在數據庫中,首先我將它轉換爲一個字節數組,然後我使用Java Zlib放氣數組,最後我將數組保存在數據庫中,這比直接在數據庫中保存文件要好得多 – Stankovic

回答

0

查看this的文件上傳/下載示例。您可以在控制器中添加額外的處理(壓縮...)。

+1

感謝您的回覆,但問題是如何上傳/下載更大文件(> 3Go)?如果我使用JPA的簡單方式,我確信我會爆炸內存,所以我正在尋找一種流式方法來優化上傳/下載在客戶端使用一些JavaScript將文件拆分成塊並將它們發送到服務器在上傳的情況下,並在下載的情況下彙編服務器發送的塊 [類似的東西](http://kongaraju.blogspot.fr/2012/07/large-file-upload-more-than-1gb-using.html ) – Stankovic

+0

我不確定這是否會非常實用,因爲這意味着客戶端的瀏覽器需要將整個文件加載到內存中進行壓縮。有一個3Gb文件,可以使大多數客戶端無法使用。考慮迫使客戶自己壓縮文件可能是更好的解決方案。閱讀此相關的帖子:http://stackoverflow.com/questions/1939791/html-compress-file-upload – emt14