2012-09-20 130 views
0

我有一個ASP.Net網站,在某些情況下,它生成.pdf文件和.csv文件供用戶下載。ASP.NET網站在哪裏可以保存生成的文件

現在我的問題:什麼是在網絡服務器上保存文件的默認目錄?有什麼ASP.NET文件夾像App _...或類似的東西?

您能推薦些什麼?

回答

1

您可以創建正確的文件夾了這方面的需要

這裏特定的文件夾列表中(但你並不需要):

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

1

這真的取決於你!我建議你將它們放在你的解決方案的子文件夾中,這樣它們就可以自成一體,並且可以輕鬆地控制安全性,而無需擔心樹下的文件夾。

1

文件夾是你告訴它的任何東西。如果你的音量很小,你可以直接從內存中傳輸文件,這樣它們就不會存儲在服務器上。

3

如果您不想重複使用這些文件,請直接流式傳輸文件而不將其保存到磁盤。

如果將它保存到磁盤上,您必須問問自己,文件的內容是否可供所有用戶使用,或者其他用戶是否可以訪問這些文件是一個壞主意。如果這是一個壞主意,通過相應地設置訪問權限,用戶將文件放入文件夾應該不可用。您可以通過將該文件夾放在網站目錄之外或通過在文件系統或Web服務器上設置安全設置來執行此操作。

基本上可以將這些文件放在任何文件夾中,這些文件夾對寫入文件的用戶(通常是ASP.NET App Pool用戶)可寫。 IIRC默認情況下,ASP.NET用戶可以寫入App_data文件夾,因此可以成爲候選人。

+0

感謝您的回答!沒有保存到光盤的流文件,這聽起來真的很有趣!我怎樣才能做到這一點? – Nagelfar

+0

@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

+0

@Nagelfar - 如果您使用組件在內存中生成PDF文件,通常會有將文件寫入流的選項。對於CSV文件庫也是如此。如果你自己生成CSV文件,這裏有一個[問題](http://stackoverflow.com/questions/946908/asp-net-stream-content-from-memory-and-not-from-file)流式CSV。 – PHeiberg

0

重要的是,您要考慮是否要有多個Web服務器,並且在羣集中有服務器。爲了做好準備,最好不要將這些文件保存在Web應用程序文件夾下,也不要將它們存儲到相對於應用程序路徑的文件中,而是將這些文件保存在一個單獨的文件夾中,您可以輕鬆地將其暴露出來成爲安全問題)作爲網絡路徑。

相關問題