我通过从ModelName动态地在Images folder中创建子文件夹上传了一个图像文件,但无法从该子文件夹中检索它

本文关键字:文件夹 图像 一个 文件 检索 动态 ModelName Images 创建 folder | 更新日期: 2023-09-27 18:10:44

我的代码:

我正在使用一个简单的数据表来显示文件夹中的图像…

在数据列表中点击破碎图像图标后显示错误,无法找到资源。

描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下网址,并确保拼写正确。

请求的URL:/WebSite2/Images/Desert.jpg

protected void BindDataList()
{
    DirectoryInfo dir = new DirectoryInfo(MapPath(@"~/Images/"+Model.Text+"/"));
    FileInfo[] files = dir.GetFiles();
    ArrayList listItems = new ArrayList();
    foreach (FileInfo info in files)
    {
        listItems.Add(info);
    }
    DataList1.DataSource = listItems;
    DataList1.DataBind();
}
protected void upload_Click(object sender, EventArgs e)
{
    string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
    FileUpload1.SaveAs(Server.MapPath("Images/"+Model.Text+"/" + filename));
    BindDataList();
}

protected void newfolder_Click(object sender, EventArgs e)
{
    string NewDirectory = Server.MapPath("Images/"+Model.Text);
    //New Directory Name in string variable
    CreateDirectoryIfNotExists(NewDirectory);
    //Calling the function to create new directory
}
private void CreateDirectoryIfNotExists(string NewDirectory)
{
    try
    {
        // Checking the existance of directory
        if (!Directory.Exists(NewDirectory))
        {
            //If No any such directory then creates the new one
            Directory.CreateDirectory(NewDirectory);
            Label1.Text = "Directory Created";
        }
        else
        {
            Label1.Text = "Directory Exist";
        }
    }
    catch (IOException _err)
    {
        Label1.Text = _err.Message; ;
    }
}

我通过从ModelName动态地在Images folder中创建子文件夹上传了一个图像文件,但无法从该子文件夹中检索它

所有路径定义都应该以~/:

protected void upload_Click(object sender, EventArgs e)
{
    string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
    FileUpload1.SaveAs(Server.MapPath("~/Images/"+Model.Text+"/" + filename));
    BindDataList();
}
protected void newfolder_Click(object sender, EventArgs e)
{
    string NewDirectory = Server.MapPath("~/Images/"+Model.Text);
    //New Directory Name in string variable
    CreateDirectoryIfNotExists(NewDirectory);
    //Calling the function to create new directory
}

试试这个:

protected void BindDataList()
{
    var imgDir = HttpContext.Current.Server.MapPath(string.Format(@"~/Images/{0}/", Model.Text));
    DirectoryInfo dir = new DirectoryInfo(imgDir);
    FileInfo[] files = dir.GetFiles();
    ArrayList listItems = new ArrayList();
    foreach (FileInfo info in files)
    {
        listItems.Add(info);
    }
    DataList1.DataSource = listItems;
    DataList1.DataBind();
}
protected void upload_Click(object sender, EventArgs e)
{
    string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
    var imgPath = HttpContext.Current.Server.MapPath(string.Format(@"~/Images/{0}/{1}", Model.Text, filename));
    FileUpload1.SaveAs(imgPath);
    BindDataList();
}
protected void newfolder_Click(object sender, EventArgs e)
{
    var imgDir = HttpContext.Current.Server.MapPath(string.Format(@"~/Images/{0}/", Model.Text));
    //New Directory Name in string variable
    CreateDirectoryIfNotExists(imgDir);
    //Calling the function to create new directory
}