ASP.NET针对MSSQL里面的IMAGE字段的图片写入和读取操作代码

今天遇到一个企业网站的项目,客户要求系统里面的产品数据表要用他们公司的ERP里面的数据库,里面的产品图片还可以更换(他的ERP的产品图片是存放到IMAGE字段里面的),如果没有可更换的图片,那么就直接读取产品表的ERP插入的原图,找了很多时候,才找到个可行读取IMAGE字段并把图片显示在浏览器的代码:
c# 代码
 
  1. try  
  2.        {   
  3.            byte[] imgData;   
  4.            imgData = (byte[])dtbl_pd.Rows[0]["yytp"];//图片IMAGE字段   
  5.            int iLength = imgData.Length;   
  6.            //  FileStream fs = new FileStream("E:\\Project\\CompanyWebSite\\1.gif", System.IO.FileMode.Create, System.IO.FileAccess.Write);//可用于生成实际的文件   
  7.            //  fs.Write(imgData, 0, iLength);   
  8.     //fs.Close();   
  9.            Response.OutputStream.Write(imgData, 0, iLength);   
  10.        }   
  11.        catch (Exception ex)   
  12.        {   
  13.   
  14.        }  

 

调用很简单,比如上面的代码所在的页面名为:Img.aspx,那么可以在需要的页面里面插入:

<img src="Img.aspx" />

另外有了读取顺便也提供个插入吧,经过测试为可行的

InsertImage.aspx关键代码:

HTML代码
 
  1. <form enctype="multipart/form-data" runat="server" id="Form1">  
  2.     <table runat="server" width="700" align="left" id="Table1" cellpadding="0" cellspacing="0" border="0">  
  3.         <tbody>  
  4.         <tr>  
  5.             <td>上传图片(选择你要上传的图片)</td>  
  6.             <td>  
  7.             <input type="file" id="UP_FILE" runat="server" style="Width:320" accept="text/*" name="UP_FILE" />  
  8.             </td>  
  9.         </tr>  
  10.         <tr>  
  11.             <td>文件说明(添加上传图片说明,如:作者、出处) </td>  
  12.             <td>  
  13.             <asp:TextBox RUNAT="server" WIDTH="239" ID="txtDescription" />  
  14.             </td>  
  15.         </tr>  
  16.         <tr>  
  17.             <td>  
  18.             <asp:Label RUNAT="server" ID="txtMessage" FORECOLOR="red"  />  
  19.             </td>  
  20.             <td>  
  21.             <asp:Button ID="Button1" RUNAT="server" WIDTH="239" onCLICK="Button_Submit" TEXT="UploadImage" /></td>  
  22.         </tr>  
  23.     </tbody>  
  24.     </table>  
  25. </form>  

InsertImage.aspx.cs关键代码:

 c# 代码

 
  1. protected void Button_Submit(System.Object sender, System.EventArgs e)   
  2. {   
  3.     HttpPostedFile UpFile = UP_FILE.PostedFile;  //HttpPostedFile对象,用于读取图象文件属性   
  4.     FileLength = UpFile.ContentLength;     //记录文件长度   
  5.     try  
  6.     {   
  7.         if (FileLength == 0)   
  8.         {   //文件长度为零时   
  9.             txtMessage.Text = "<b>请你选择你要上传的文件</b>";   
  10.         }   
  11.         else  
  12.         {   
  13.             Byte[] FileByteArray = new Byte[FileLength];   //图象文件临时储存Byte数组   
  14.             Stream StreamObject = UpFile.InputStream;      //建立数据流对像   
  15.             //读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度   
  16.             StreamObject.Read(FileByteArray, 0, FileLength);   
  17.             //建立SQL Server链接   
  18.             SqlConnection Con = new SqlConnection("Data Source=Localhost;Initial Catalog=CompanyWebSiteData;User ID=sa;Pwd=chenfeng;");   
  19.             String SqlCmd = "Insert INTO cp (cpbh,yytp) valueS (@cpbh,@Image)";   
  20.             SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);   
  21.             CmdObj.Parameters.Add("@Image", SqlDbType.Binary, FileLength).Value = FileByteArray;   
  22.             CmdObj.Parameters.Add("@cpbh", SqlDbType.VarChar, 200).Value = txtDescription.Text;   
  23.             把其它单表数据记录上传   
  24.             //CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar, 200).Value = txtDescription.Text;   
  25.             记录文件长度,读取时使用   
  26.             //CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt, 8).Value = UpFile.ContentLength;   
  27.             Con.Open();   
  28.             CmdObj.ExecuteNonQuery();   
  29.             Con.Close();   
  30.             txtMessage.Text = "<p><b>OK!你已经成功上传你的图片</b>";//提示上传成功   
  31.         }   
  32.     }   
  33.     catch (Exception ex)   
  34.     {   
  35.         txtMessage.Text = ex.Message.ToString();   
  36.     }   
  37. }  

 

转载于:https://www.cnblogs.com/ceoliujia/archive/2010/05/14/1735022.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值