2014-01-16 36 views
0

我已經使用AjaxFileUpload來上傳多個圖像文件。現在我想將上傳的圖像存儲在rootfolder>子文件夾中。如何從數據庫中提取名稱/數據並將其用作我在asp.net c#中使用server.MapPath()動態創建的文件夾名稱?

rootfolder位於用戶的名字中。 的rootfolder通過取誰已經登錄 像這樣用戶的會話動態創建:

string username = Session["username"].ToString(); 

我能夠創建此文件夾並保存圖像了。但我想將它保存在子文件夾中。

子文件夾也是動態創建的,但是這次我必須從數據庫中獲取值(id)並通過該名稱命名文件夾。 (這是我可以參考數據庫)

我知道如何使用Server.MapPath()創建一個新文件夾; 這裏是短暫

using System.IO 
if (Directory.Exists(Server.MapPath(uploadPath))) return; 
else Directory.CreateDirectory(Server.MapPath(uploadPath)); 

其中uploadPath是我想創建dynamiclly該文件夾的名稱,它的代碼。

但我如何在我的Server.MapPath()中包含子文件夾,以便使我的路徑爲rootfolder /子文件夾?

使問題可以理解的小例子。 我是賣家。我已經在網上發佈了4個廣告。 現在,當我發佈我的第5個廣告我想包括許多圖像。 這些圖像應保存在文件夾中

Seller/5/imagename.jpg。 (其中Seller是用戶名(主文件夾),5是數據庫中的advertID和子文件夾的名稱)

我該如何做?請幫忙。 我使用asp.net c#

回答

0

據我所知,你不能做一個語句來創建文件夾和子文件夾,因爲你需要首先創建文件夾。

你有你需要的所有代碼,你只需要重複它。檢查主文件夾(用戶名)是否存在。如果它沒有創建它,如果它確實存在,請檢查子文件夾是否存在。如果沒有,請創建它。

只要通過該邏輯工作,你就會被設置。

+0

感謝戴夫。將工作。:-) 創建新文件夾是好的..我想用數據庫中的數據(Id號)命名新創建的文件夾。無論如何,我能做到嗎? 我正在爲此進行第一次。所以卡在這裏。 – user2106271

+0

當然。只需取出數據並將其轉換爲字符串並將其用作文件夾名稱即可。有幾種方法可以做到這一點,你可以在Google上獲得大量的例子,但最簡單的方法是'advertId.ToString()'或'String.Format(「{0}」,advertId)''。做第一個如果你只是轉換整數,但做第二個如果你需要連接字符串與其他任何東西(即,'String.Format(「AdvertId {0}」,advertId)'將產生'advertId5'作爲輸出文件夾名稱,並節省您在多行代碼中進行拼接的頭痛(和開銷)。 –

+0

這是否行之有效?如果是這樣,請將其標記爲答案! –

0

用戶Path.Combine添加你的根和用戶ID:

var userPath = Path.Combine(uploadPath,userID) 

這是創建你所需要的最安全的方式。方法Directory.CreateDirectory將根據需要創建所有子文件夾:

var userPath = Path.Combine(uploadPath,userID) 
if (Directory.Exists(Server.MapPath(userPath))) return; 
else Directory.CreateDirectory(Server.MapPath(userPath)); 
相關問題