我上传的文件已上传到网络应用程序根目录中的文件夹,即我有
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>
在代码中:
string savePath = ConfigurationSettings.AppSettings["DocumentationLocation"];
string filename = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(Server.MapPath(savePath) + filename);
我认为这可以完全相同,将文件保存到web.config中指定的文件夹。
但是,当我现在尝试上传文档时出现错误,其中包含:
'C:\ TM_Documentation \'不是有效的虚拟路径。
任何想法我做错了所以我可以修复它并将文件保存在Web应用程序目录之外?谢谢。
答案 0 :(得分:1)
删除Server.MapPath()
,您不需要服务器为您映射路径,因为您已经提供了完整路径。
答案 1 :(得分:0)
如果您的路径为“C:\ Documentation \”,则不需要Server.MapPath
。
仅当您的配置具有相对路径(例如“〜/ Documentation /”
Server.MapPath
试试这个
FileUploadControl.SaveAs(savePath + filename);