2012-01-27 106 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);