我有一個ASP.Net網站,在某些情況下,它生成.pdf文件和.csv文件供用戶下載。ASP.NET網站在哪裏可以保存生成的文件
現在我的問題:什麼是在網絡服務器上保存文件的默認目錄?有什麼ASP.NET文件夾像App _...或類似的東西?
您能推薦些什麼?
我有一個ASP.Net網站,在某些情況下,它生成.pdf文件和.csv文件供用戶下載。ASP.NET網站在哪裏可以保存生成的文件
現在我的問題:什麼是在網絡服務器上保存文件的默認目錄?有什麼ASP.NET文件夾像App _...或類似的東西?
您能推薦些什麼?
您可以創建正確的文件夾了這方面的需要
這裏特定的文件夾列表中(但你並不需要):
App_GlobalResources,
App_LocalResources,
App_Resources
App_Themes
App_WebReferences)
App_Code
App_Data
App_Browsers
這裏關於項目結構
鏈接MSDN鏈接: http://msdn.microsoft.com/en-us/library/ex526337%28v=vs.100%29.aspx
這真的取決於你!我建議你將它們放在你的解決方案的子文件夾中,這樣它們就可以自成一體,並且可以輕鬆地控制安全性,而無需擔心樹下的文件夾。
文件夾是你告訴它的任何東西。如果你的音量很小,你可以直接從內存中傳輸文件,這樣它們就不會存儲在服務器上。
如果您不想重複使用這些文件,請直接流式傳輸文件而不將其保存到磁盤。
如果將它保存到磁盤上,您必須問問自己,文件的內容是否可供所有用戶使用,或者其他用戶是否可以訪問這些文件是一個壞主意。如果這是一個壞主意,通過相應地設置訪問權限,用戶將文件放入文件夾應該不可用。您可以通過將該文件夾放在網站目錄之外或通過在文件系統或Web服務器上設置安全設置來執行此操作。
基本上可以將這些文件放在任何文件夾中,這些文件夾對寫入文件的用戶(通常是ASP.NET App Pool用戶)可寫。 IIRC默認情況下,ASP.NET用戶可以寫入App_data文件夾,因此可以成爲候選人。
重要的是,您要考慮是否要有多個Web服務器,並且在羣集中有服務器。爲了做好準備,最好不要將這些文件保存在Web應用程序文件夾下,也不要將它們存儲到相對於應用程序路徑的文件中,而是將這些文件保存在一個單獨的文件夾中,您可以輕鬆地將其暴露出來成爲安全問題)作爲網絡路徑。
感謝您的回答!沒有保存到光盤的流文件,這聽起來真的很有趣!我怎樣才能做到這一點? – Nagelfar
@Nagelfar - 如果你使用MVC,你可以看到[這個問題](http://stackoverflow.com/questions/5828315/write-pdf-stream-to-response-stream)。如果你使用webforms見[這裏](http://stackoverflow.com/questions/5916647/write-pdf-stream-to-response-stream)。基本上,您可以按照鏈接示例所示的方式流式傳輸任何類型的流(如果沒有物理文件,則使用MemoryStream)。 – PHeiberg
@Nagelfar - 如果您使用組件在內存中生成PDF文件,通常會有將文件寫入流的選項。對於CSV文件庫也是如此。如果你自己生成CSV文件,這裏有一個[問題](http://stackoverflow.com/questions/946908/asp-net-stream-content-from-memory-and-not-from-file)流式CSV。 – PHeiberg