2013-03-17 194 views
0

我的站點上有一個用於文件上傳的文件夾http://mySite/Uploads/ 爲每個用戶創建一個新文件夾並將文件保存到其中。它適用於網站訪問者/但我也有一個管理網站。員工應該能夠在同一個目錄下使用它上傳文件。
Directory.CreateDirectory返回一個錯誤,它不能處理uri地址。 我正在通過"http://mySite/Uploads/UserId"。我錯了嗎?我應該使用另一種機制嗎?從另一個文件夾中的一個站點創建文件夾

回答

0

如果有人感興趣。我們在兩個站點的IIS中都創建了虛擬文件夾「上傳」。在iis上右鍵點擊你的網站=>添加虛擬文件夾或以某種方式,我的iis不是英文版。爲兩個網站都做。並且它是全路徑點在相同的文件夾,所以我可以使用Server.MapPath("~Uploads");並在管理網站我得到http://adminSite/Uploads/,在主站點是http://mySite/Uploads/。如果我通過一個地址上傳文件,我可以通過另一個地址訪問他們。

0

我錯了嗎?

是的,你應該通過一個物理文件夾Directory.CreateDirectory方法,而不是一個URL。例如:

Directory.CreateDirectory(Server.MapPath("~/uploads/UserId")); 

Server.MapPath方法應該返回一個像這樣的文件夾:c:\inetpub\wwwroot\mysite\uploads\userid

+0

顯然,我被誤解了。 Server.MapPath(「〜/ uploads/UserId」)會給我myadminsite \ uploads \ UserId,我希望它是mymainsite \ uploads \ UserId – 2013-03-17 18:06:16

+0

然後你不能使用'Server.MapPath'方法。此方法僅適用於同一應用程序。如果您需要訪問應用程序之外的文件夾,則必須指定完整路徑:'c:\ inetpub \ wwwroot \ mymainsite \ uploads \ userid.' – 2013-03-17 18:08:30

0

您必須使用相對於系統根目錄的路徑。你可以用MapPath方法做到這一點。

var uploadsRoot = Server.MapPath("~Uploads"); 
var userUploadFolder = Path.Combine(UploadsRoot, userId.ToString()); 
Directory.CreateDirecty(userUploadFolder); 
+0

這正是我從主站點的頁面上傳的內容。但我也需要在另一個站點的相同文件夾中執行/ Server.MapPath如何實現?它映射到管理網站,這不是我所需要的 – 2013-03-17 18:00:47

相關問題