C# 保存路径、虚拟目录和静态位置
我有一个上传到web应用程序根目录中的文件夹的文件,即C# 保存路径、虚拟目录和静态位置,c#,asp.net,C#,Asp.net,我有一个上传到web应用程序根目录中的文件夹的文件,即 string savePath = @"~/documentation/" string filename = Path.GetFileName(FileUploadControl.FileName); FileUploadControl.SaveAs(Server.MapPath(savePath) + filename); 这很好,将文件上传到WebApp/documentation/filename.abc 问题是,我想更改文档的
string savePath = @"~/documentation/"
string filename = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(Server.MapPath(savePath) + filename);
这很好,将文件上传到WebApp/documentation/filename.abc
问题是,我想更改文档的位置,这样在从开发推送到生产时就不必移动该文件夹。所以我做了下面的事情
在Web.Config中:
<appSettings>
<add key="DocumentationLocation" value="C:\Documentation\" />
</appSettings>
我认为这将同样有效,将文件保存到web.config中指定的文件夹中
但是,我现在尝试上载文档时出现错误,即:
“C:\TM\U Documentation\”不是有效的虚拟路径
知道我做错了什么吗,这样我就可以修复它并将文件保存到web应用程序目录之外?谢谢 删除
服务器.MapPath()
,您不需要服务器为您映射路径,因为您已经给出了完整路径。如果您的路径为“C:\Documentation\”,则不需要服务器.MapPath
。
只有在配置有相对路径(如“~/Documentation/”时,Server.MapPath
才是必需的
试试这个
FileUploadControl.SaveAs(savePath + filename);
完美的非常感谢。一旦系统允许,我会将其标记为已回答。(有趣的是,两天前我花时间研究mappath,但现在却发现它没有必要了。我猜这就是它的工作原理。)
FileUploadControl.SaveAs(savePath + filename);