2012-01-27 104 views
0

我有被上傳到一個文件夾中的Web應用程序根目錄的文件上傳,即我有保存路徑,虛擬目錄和靜態位置

string savePath = @"~/documentation/" 

string filename = Path.GetFileName(FileUploadControl.FileName); 
FileUploadControl.SaveAs(Server.MapPath(savePath) + filename); 

和工作正常,將文件上傳到Web應用程序/文檔/ filename.abc

的問題是,我想改變文件的位置,所以我沒有從開發推向生產時要移動的文件夾。所以我做了以下

在Web.Config中:

<appSettings> 
    <add key="DocumentationLocation" value="C:\Documentation\" /> 
</appSettings> 

在代碼:

string savePath = ConfigurationSettings.AppSettings["DocumentationLocation"]; 

string filename = Path.GetFileName(FileUploadControl.FileName); 
FileUploadControl.SaveAs(Server.MapPath(savePath) + filename); 

我想這將相同的工作,將文件保存到網絡中指定的文件夾。配置。

不過,我得到一個錯誤,當我現在嘗試上傳文檔,上面寫着:

「C:\ TM_Documentation \」不是有效的虛擬路徑。

任何想法我做錯了,所以我可以修復它,並保存在web應用程序目錄之外的文件?謝謝。

回答

1

取出Server.MapPath(),你不需要服務器映射路徑爲你,因爲你已經給人一種完整路徑。

+0

完美。謝謝。一旦系統讓我回答,我會將其標記爲答案。 (有趣的是,兩天前我花了很多時間研究mappath事物,並且只是爲了找出現在不需要的東西,猜測它總是如此。) – Josh 2012-01-27 18:04:34

0

你不需要Server.MapPath,如果你有作爲「C:\文檔\」你的路徑。 Server.MapPath如果你配置有一個相對路徑,如只需要「〜/文檔/」

試試這個

FileUploadControl.SaveAs(savePath + filename);