将文件保存在网站文件上方的文件夹中



我的主机具有以下结构:

/Web->网站内容在哪里/数据->读取和写入的文件夹权限

如何将文件上载到Data文件夹?下面的代码不起作用,因为"~"返回目录/web。

//Save Image
var serverPath = Server.MapPath(Href("~/Data/") + id);
Directory.CreateDirectory(serverPath);
imgOri.Save(Path.Combine(serverPath, fileName));

Server.MapPath((用于将路径映射到应用程序的根目录。当你试图在根目录上传一个文件时,它不会起作用。

您可以通过指定确切的文件路径(如果主机可以提供(在根目录上方上传文件:

var serverPath="C:\YourFolder\Data\"(+id(;

我很惊讶你的主机允许你在根目录之外上传文件,因为这样做有很多危险。。。你也可能遇到信任问题。

您可以使用Server.MapPath获取与站点根目录位于同一级别的目录的路径,如下所示:

@{
    var root = Server.MapPath(".");
    var temp = root.Split('\');
    temp[temp.Length - 1] = "Data";
    var newpath = string.Join("\", temp);
}

托管公司过去常常在根文件夹之外提供"数据"目录,作为Access mdb数据库之类的安全场所。您不能直接浏览到站点根目录之外的目录。ASP.NET通过引入App_Data消除了对这些东西的需求。现在您想要使用这种文件夹的唯一原因是,如果您想在提供目录内容之前应用某种身份验证。然后你需要使用一个处理程序,或者一个简单的cshtml文件就可以了。你可以将WebSecurity助手和WebImage助手结合起来,首先对用户进行身份验证,然后在他们通过测试时检索并显示图像。img标记中的src将指向cshtml文件,并带有querystring或UrlData值,这样您就可以知道要显示哪个图像。

如果在显示图像之前不需要验证用户,那么将图像文件存储在根目录之外会增加不必要的复杂性。

相关内容

  • 没有找到相关文章

最新更新