保存路径、虚拟目录和静态位置

本文关键字:静态 位置 路径 虚拟 保存 | 更新日期: 2023-09-27 18:21:33

我上传了一个文件,该文件正在上传到web应用程序根目录中的文件夹,即我有

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应用程序目录之外吗?谢谢

保存路径、虚拟目录和静态位置

删除Server.MapPath(),您不需要服务器为您映射路径,因为您已经给出了完整的路径。

如果路径为"C:''Documentation''",则不需要Server.MapPath。只有当配置具有相对路径(如"~/Documentation/")时,才需要Server.MapPath

试试这个

FileUploadControl.SaveAs(savePath + filename);