2008-09-24 53 views

回答

5

你可能會想要手動編碼。 ASP.NET用於管理用戶文件沒有內在的東西。但是,這樣做的代碼應該相對容易。假設用戶名是唯一的並且永不改變,您可以將用戶名與路徑(使用Path.Combine)組合並上傳到該位置。我還會鎖定該位置,以便其他人無法訪問它。

+0

由於新用戶將被添加,手寫代碼將不實用。我將SkyDrive視爲我正在努力完成的一個完美例子。 – MarlonRibunal 2008-09-24 04:57:51

+0

我認爲他手工編碼的含義是基於用戶名以編程方式創建文件夾,並簡單地說明.net中沒有現有的約定。 – 2008-09-24 05:00:38

+0

沒問題。您需要以編程方式創建文件夾。 – Haacked 2008-09-24 05:13:22

0

如果文件夾不存在,您可以檢查該文件夾的存在併爲其創建,但是存在安全隱患。您可能還想嘗試將數據存儲在數據庫中並將其綁定到用戶上......這取決於您讓用戶上傳的內容。

0

有你可以做到這一點的幾種方法:

使用窗體身份驗證

如果使用窗體身份驗證,可以設置一個慣例,其中一個用戶的用戶名或ID可以作爲基礎您的服務器上用戶可以上傳文件的路徑。請注意,您的用戶將無法直接訪問該文件夾:用戶也應該能夠通過您的Web應用程序從您的服務器下載文件。

使用Windows身份驗證

如果你使用Windows(例如,ActiveDirectory的)身份驗證,可以向用戶提供兩個文件夾的物理位置,並通過一個Web應用程序的訪問。

P.S. - 很高興在這裏見到你Marlon!

3

我過去做過的方式是使用基礎上傳文件夾(比如上傳),並在該文件夾中使用數據庫中的用戶ID創建文件夾。因此,對於用戶ID爲145的用戶,結構將是.. \ uploads \ 145.

我的代碼所做的第一件事是檢查文件夾是否存在,如果不存在,則調用Directory.Create( )(或任何語法)在上傳之前創建文件夾。

更多信息,你可能會發現有幫助:我也使用GUID重命名文件,避免名稱衝突,如果他們上傳2個具有相同名稱的文件。缺點是您通常需要使用原始文件名和物理(GUID)文件名來維護一個表。

相關問題