asp.net文件上传和文件读取(图片)

时间:2013-12-26 21:31:29

标签: c# mysql asp.net file-upload filepath

我正在使用asp.net创建一个移动Web应用程序来管理自行车零件 我已经让文件上传工作但现在我需要弄清楚如何让图像控件从服务器上的新位置显示图像。

我将保存数据库中的图像文件路径我只需要弄清楚如何获取图像的新文件路径。

这是我用于文件上传的代码

if (this.FileUpload1.HasFile)
    {
      this.FileUpload1.SaveAs(Server.MapPath("~/Mobile/" + FileUpload1.FileName));
    }

我可能会想到这一点,但万一我无法想象我现在会发布这个问题,因为它可能需要一段时间才能得到答案而且我有一条死线

2 个答案:

答案 0 :(得分:1)

您将不得不使用“ImageHandler”正确读取图像。

这就是我处理我的处理程序的方式。

public class ImageHandler : IHttpHandler
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dboBlog"].ConnectionString);
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                string messageid = context.Request.QueryString["mid"];

            conn.Open();
            SqlCommand command = new SqlCommand("SELECT Image from BlogMessages WHERE Image IS NOT NULL AND MessageID=" + messageid, conn);
            SqlDataReader dr = command.ExecuteReader();

            if (dr.Read())
            {
                context.Response.BinaryWrite((Byte[])dr[0]);
                conn.Close();
                context.Response.End();
            }
        }
        catch (Exception ex)
        {
            return;
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

正如您所知,我使用QueryString。我用这个查询字符串来调用图像。我在gridview中调用我的图像,但这就是它的样子......

<asp:Image ID="postImage" runat="server" ImageUrl='<%# "ImageHandler.ashx?mid="+ Eval("MessageID") %>' Width="400px" AlternateText="No Image" ImageAlign="Middle" Visible="false" />

我确实将可见性设置为false,因为它是一个博客,有时人们不上传图像。如您所知,图像url调用ImageHandler,其中查询字符串等于MessageID。

这对我有用,所以希望它会帮助你。

答案 1 :(得分:0)

要显示图像,您只需使用带有保存图像的Url的图像控件。在你的情况下,它看起来像:

<asp:Image runat="server" ImageUrl='~/Mobile/{What you called the file}' />

您的问题没有很多关于您所遇到的具体问题的详细信息 - 因此有点难以说明如何提供帮助。

上传文件后,上述代码应该可以正常工作。如果我没有正确理解,请更新问题,也许更多代码和您尝试过的内容。