zoukankan      html  css  js  c++  java
  • 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. }  
  • 相关阅读:
    JAVA数据库连接池
    数据库连接池总结 Proxool
    Linux下挂载ISO文件
    Runtime.getRuntime().addShutdownHook()的使用
    tomcat original passports setting
    JDBC之通过DatabaseMetaData对象了解数据库的信息
    linux下mysql远程登陆
    教您如何安全的应用 MySQL
    Eclipse中cvs的使用介绍
    WM_COPYDATA
  • 原文地址:https://www.cnblogs.com/ceoliujia/p/1735022.html
Copyright © 2011-2022 走看看