在asp.net文件夹中找不到上传的图像

时间:2016-06-10 03:59:09

标签: c# asp.net file-upload

我有一个上传功能,它会在上传点击后在grdiview中显示上传的图像。 这是代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/"));
            List<ListItem> files = new List<ListItem>();
            foreach (string filePath in filePaths)
            {
                string fileName = Path.GetFileName(filePath);
                files.Add(new ListItem(fileName, "~/Uploads/" + fileName));
            }
            GridView1.DataSource = files;
            GridView1.DataBind();
        }
    }
    protected void Upload(object sender, EventArgs e)
    {

        if (FileUpload1.HasFile)
        {
            string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
            FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Uploads/") + fileName);
            Response.Redirect(Request.Url.AbsoluteUri);
        }
    }
}

}

这很好用。它上传并显示在gridview中。我遇到的问题是图片不是指向路径。它不在uploads文件夹中。 有什么伎俩吗?

UPDATE 在解决方案资源管理器中显示所有内容,我得到了这个:

enter image description here

2 个答案:

答案 0 :(得分:0)

可能的解决方案是,在保存/上传文件时,可以使用Path.Combine

  FileUpload1.PostedFile.SaveAs( Path.Combine(Server.MapPath("~/Uploads/"),fileName))

,同样适用于:

files.Add(new ListItem(fileName,Path.Combine(Server.MapPath("~/Uploads/"),fileName))); 

答案 1 :(得分:0)

我主要使用以下方法。

您可以通过以下示例代码获得帮助...

 string fnam, newname,ext, serpath,dbpath="", fid;
 ext = System.IO.Path.GetExtension(File_Upload.PostedFile.FileName);
 fnam = File_Upload.PostedFile.FileName;
 fid = Guid.NewGuid().ToString();
 newname = fid + ext;
 serpath = Path.Combine(Server.MapPath("uploads\\"), newname);
 dbpath = "~\\uploads\\" + newname;
 File_Upload.PostedFile.SaveAs(serpath);