2012-03-30 68 views
0

我正在研究一個在線文檔管理系統,用戶可以將多個文檔作爲一個ZIP文件下載。這些文件可以很大,以便在內存中完整處理,所以在這種情況下,我們使用臨時文件。然後使用Http11NioProtocol將該臨時文件發送到客戶端,並將org.apache.tomcat.sendfile設置爲臨時文件。問題是在將文件傳輸到客戶端瀏覽器後,服務器被暫時保存爲臨時文件。Tomcat NIO和Sendfile清理文件發送

Ofc。可以使用deleteAfterExit或某種類型的tempFileManager,但是我正在尋找的是一種在完成文件傳輸時註冊處理函數的方法,或者具有某種可用於清理臨時文件的回調函數?

回答

0

如果您在Linux上運行,即使傳輸尚未完成,也可以安全地刪除文件。你不能馬上刪除這個文件,因爲tomcat的sendfile代碼必須能夠打開這個文件,但你可能會在一分鐘後安全地刪除這個文件。

+0

這樣做與使用tempfileManager註冊文件有很大的不同,在設置下載1分鐘後刪除文件。我寧願做一些行動,只要下載完成,並不希望文件在x分鐘後可以刪除 – kali 2012-04-04 07:36:54