上传图像并在Image控件中显示它

时间:2015-04-28 11:57:23

标签: c# asp.net

我的代码有什么问题?

protected void Button1_Click(object sender, EventArgs e)
{
    string stream = FileUpload1.FileName;
    string sub = stream.Substring(stream.LastIndexOf(".")+1);
    if(FileUpload1.HasFile)
    {
        if (sub == "jpg" || sub == "jpeg" || sub == "png")
        {
            string path = Server.MapPath("./Image/" + stream);
            FileUpload1.SaveAs(path);
            Image1.ImageUrl = path;
            Image1.DataBind();
        }
        else 
        {
            Response.Write("Please insert valid Image");
        }
    }
}

3 个答案:

答案 0 :(得分:0)

删除路径字符串开头的那个点(。)。

像这样:

string path = Server.MapPath("/Image/" + stream);

还要确保路径正确并且文件已上传。如果需要,您可以尝试使用相对URL。

希望这有帮助。

答案 1 :(得分:0)

替换这个:

Image1.ImageUrl = path;

以下内容:

Image1.ImageUrl = string.Format("{0}://{1}/Image/{2}",
HttpContext.Current.Request.Url.Scheme,
HttpContext.Current.Request.Url.Authority, stream);

答案 2 :(得分:0)

将ImageUrl更改为互联网网址而非物理路径。

Image1.ImageUrl = "/Image/" + stream; //path;
//Image1.DataBind(); <-- remove it 

P.S。

您还可以使用System.IO.Path.GetExtension(stream)获取扩展名,例如“.jpg”(其中带有前导点)。