2013-05-13 44 views
0

我有一個動態生成PowerPoint文件的控制器操作。這通過解壓縮現有的.pptx文件,對XML進行一些更改並將結果壓縮爲新的臨時.pptx文件來實現。然後使用File()從該操作返回該文件。在返回瀏覽器後清理臨時文件

如何在臨時文件返回給客戶端後清理臨時文件?

有沒有更好的方法來解決這個問題?

+0

個人而言,我在每次清理調用時都會添加一個異步進程 - 這也是我如何更新緩存,進行日誌記錄等等......您打算再次進行調用並使用它。這只是網絡的本質 - 你可以用poller或其他方法做一些破解,但最好是堅持使用HTTP的按需模式。 – 2013-05-13 19:58:52

回答

0

我最終創建了一個包裝類,它實現了IDisposable,它負責創建臨時文件並在Dispose()中刪除它。

1

我想你使用的庫如SharpZipLib

正確的解決方案IMO並不是首先生成文件。使用SharpZipLib,您可以將該文件寫入stream。只要將它指向輸出流,你應該很好。

+0

我實際上使用System.IO.Compression.ZipArchive,但我想同樣應該適用。如果使用流而不是文件來處理流如何以及何時處理? – 2013-05-13 22:15:22

+0

如果您使用OutputStream作爲基礎流,則框架會在您發送請求時將其關閉。 – Kenneth 2013-05-13 22:16:14

+0

如何返回流?我只看到從流中獲取所有字節並使用File返回所有字節的示例。 – 2013-05-14 06:19:35

相關問題