从SQL数据表中的asp映像文件:Image控件 [英] Image file from SQL data table to asp:Image control

查看:120
本文介绍了从SQL数据表中的asp映像文件:Image控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些问题,阅读的图像形成SQL和ASP可视化:Image控件。
中的场景是:




  1. 从本地计算机上传图片


  2. 网站变成图像文件位阵列并保存


  3. 然后从表中读取,并将其解析到特定的asp:图像




我有以下代码:

 < ASP:内容ID =wrapperContentContentPlaceHolderID =包装=服务器> 

< ASP:图片ID =profileImage=服务器的ImageUrl =<%= IMG%GT; />< BR />

< ASP:按钮的ID =ChangeImage=服务器文本=更改图片的OnClick =ChangeImage_Click/>

< ASP:文件上传ID =文件上传=服务器可见=假/>

< ASP:按钮的ID =UploadImage=服务器文本=上传照片可见=假的OnClick =UploadImage_Click/>

< / ASP:内容>

和后面的代码:

 公共部分类详情:System.Web.UI.Page 
{
公众诠释身份证;
公共位图位图;
公共字符串imgUrl的;


保护无效的Page_Load(对象发件人,EventArgs五)
{

如果(会话[username的]!= NULL)
{
字符串SQL ='+会话[username的] +,从用户其中username =选择*';
SqlDataReader的特别提款权= operateData.getRow(SQL);
sdr.Read();
ID = Int32.Parse(SDR [ID]的ToString());

SQL ='+ ID +,从型材其中userid =选择*';
SqlDataReader的sdrPr = operateData.getRow(SQL);
sdrPr.Read();

的SqlConnection CON = operateData.createCon();
con.Open();
SqlDataAdapter的SDA =新SqlDataAdapter的(SQL,CON);
DataTable的DT =新的DataTable();
sda.Fill(DT);
的DataRow行= dt.Rows [0];
字节[] = imgBytes(字节[])行[IMG];
System.Web.UI.WebControls.Image IMG =新System.Web.UI.WebControls.Image();

字符串文件路径=使用Server.Mappath(TEMP)+//+IMG+ DateTime.Now.Ticks.ToString()+巴纽;
的FileStream FS = File.Create(文件路径);
fs.Write(imgBytes,0,imgBytes.Length);
fs.Flush();
fs.Close();

profileImage.ImageUrl =文件路径;

}
,否则
{
的Response.Redirect(为Login.aspx);
}
}
保护无效ChangeImage_Click(对象发件人,EventArgs五)
{
FileUpload.Visible = TRUE;
UploadImage.Visible = TRUE;
}
保护无效UploadImage_Click(对象发件人,EventArgs五)
{
如果(FileUpload.HasFile)
{
字符串SQL =更新配置文件设置IMG ='+ IMG +'其中userid ='+身份证+';
operateData.execSql(SQL);
}
}
}



什么我错过.. ?我该如何管理呢?


解决方案

请尝试以下代码。
在Web应用程序图像控制图像需要相对路径,所以你必须
变动图像URL,如下所示




profileImage.ImageUrl =IMG + DateTime.Now.Ticks.ToString()+
的.png;




 保护无效的Page_Load(对象发件人,EventArgs五)
{

如果(会话[username的]!= NULL)
{
字符串SQL ='+会话[username的] +,从用户其中username =选择*';
SqlDataReader的特别提款权= operateData.getRow(SQL);
sdr.Read();
ID = Int32.Parse(SDR [ID]的ToString());

SQL ='+ ID +,从型材其中userid =选择*';
SqlDataReader的sdrPr = operateData.getRow(SQL);
sdrPr.Read();

的SqlConnection CON = operateData.createCon();
con.Open();
SqlDataAdapter的SDA =新SqlDataAdapter的(SQL,CON);
DataTable的DT =新的DataTable();
sda.Fill(DT);
的DataRow行= dt.Rows [0];
字节[] = imgBytes(字节[])行[IMG];
System.Web.UI.WebControls.Image IMG =新System.Web.UI.WebControls.Image();

字符串文件路径=使用Server.Mappath(TEMP)+//+IMG+ DateTime.Now.Ticks.ToString()+巴纽;
的FileStream FS = File.Create(文件路径);
fs.Write(imgBytes,0,imgBytes.Length);
fs.Flush();
fs.Close();

profileImage.ImageUrl =img目录+ DateTime.Now.Ticks.ToString()+巴纽;

}
,否则
{
的Response.Redirect(为Login.aspx);
}
}


I have some problems with reading images form SQL and visualise in asp:Image control. The scenario is:

  1. Upload picture from local machine

  2. Website turns image file to bit array and save it

  3. Then read it from the table and parse it to specific asp:Image

I have the following code:

<asp:Content ID="wrapperContent" ContentPlaceHolderID="wrapper" Runat="Server">

    <asp:Image ID="profileImage" runat="server" ImageUrl="<%=img %>" /><br />

    <asp:Button ID="ChangeImage" runat="server" Text="Change Photo" OnClick="ChangeImage_Click" />

    <asp:FileUpload ID="FileUpload" runat="server" Visible="false" />

    <asp:Button ID="UploadImage" runat="server" Text="Upload Photo" visible="false" OnClick="UploadImage_Click"/>

</asp:Content>

And code behind:

public partial class Details : System.Web.UI.Page
{
    public int id;    
    public Bitmap bitmap;
    public string imgUrl;


    protected void Page_Load(object sender, EventArgs e)
    {   

        if (Session["userName"] != null)
        {
            string sql = "select * from users where username='" + Session["userName"]+"'";
            SqlDataReader sdr = operateData.getRow(sql);
            sdr.Read();
            id = Int32.Parse(sdr["Id"].ToString());

            sql = "select * from profiles where userId='" + id+"'";  
            SqlDataReader sdrPr = operateData.getRow(sql);
            sdrPr.Read();

        SqlConnection con = operateData.createCon();
            con.Open();
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            DataRow row = dt.Rows[0];
            byte[] imgBytes = (byte[])row["img"];
            System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();

            string filePath = Server.MapPath("temp") + "//" + "img" + DateTime.Now.Ticks.ToString() + ".png";
            FileStream fs = File.Create(filePath);
            fs.Write(imgBytes, 0, imgBytes.Length);
            fs.Flush();
            fs.Close();

            profileImage.ImageUrl = filePath;

        }
        else
        {
            Response.Redirect("Login.aspx");
        }       
    }
    protected void ChangeImage_Click(object sender, EventArgs e)
    {
        FileUpload.Visible = true;
        UploadImage.Visible = true;
    }
    protected void UploadImage_Click(object sender, EventArgs e)
    {
        if (FileUpload.HasFile)
        {
        string sql = "update profiles set img='" + img+"' where userId='" + id + "'";
            operateData.execSql(sql);            
        }
    }
}

What do I miss..? how can I manage it?

解决方案

Please try below code. In web application image control need image relative path so you have to change image url as follows

profileImage.ImageUrl = "img" + DateTime.Now.Ticks.ToString() + ".png";

protected void Page_Load(object sender, EventArgs e)
        {   

            if (Session["userName"] != null)
            {
                string sql = "select * from users where username='" + Session["userName"]+"'";
                SqlDataReader sdr = operateData.getRow(sql);
                sdr.Read();
                id = Int32.Parse(sdr["Id"].ToString());

                sql = "select * from profiles where userId='" + id+"'";  
                SqlDataReader sdrPr = operateData.getRow(sql);
                sdrPr.Read();

            SqlConnection con = operateData.createCon();
                con.Open();
                SqlDataAdapter sda = new SqlDataAdapter(sql, con);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                DataRow row = dt.Rows[0];
                byte[] imgBytes = (byte[])row["img"];
                System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();

                string filePath = Server.MapPath("temp") + "//" + "img" + DateTime.Now.Ticks.ToString() + ".png";
                FileStream fs = File.Create(filePath);
                fs.Write(imgBytes, 0, imgBytes.Length);
                fs.Flush();
                fs.Close();

                profileImage.ImageUrl = "img" + DateTime.Now.Ticks.ToString() + ".png";

            }
            else
            {
                Response.Redirect("Login.aspx");
            }       
        }

这篇关于从SQL数据表中的asp映像文件:Image控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆