asp.net保存图片到数据库中

时间:2009-03-10    点击:1690   

<% @Import Namespace="System" %>
<% @Import Namespace="System.IO" %>
<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.OleDb" %>
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">


           
           
   public void Button_Submit(System.Object sender, System.EventArgs e)
   {
     // HttpPostedFile对象,用于读取图象文件属性
     HttpPostedFile UpFile = UP_FILE.PostedFile;

     // FileLength 变量存储图片的字节大小
     int FileLength = UpFile.ContentLength;

     try
     {
    if (FileLength == 0)
    {
     txtMessage.Text = "<b>您未选择上传的文件</b>";
    }
    else
    {
     // 创建存储图片文件的临时 Byte 数组
     Byte[] FileByteArray = new Byte[FileLength];

     // 建立数据流对象
     Stream StreamObject = UpFile.InputStream; 
   
     // 读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
     StreamObject.Read(FileByteArray,0,FileLength);  

     // 数据库操作
     string ConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("img.mdb");
     string query = "INSERT INTO ImageTable (ImageData, ImageContentType, ImageSize) VALUES (@ImageData, @ImageContentType, @ImageSize)";
     OleDbCommand myCommand = new OleDbCommand(query, new OleDbConnection(ConnStr));

     // 添加各项参数并赋值
     myCommand.Parameters.Add("@ImageData", OleDbType.Binary);
     myCommand.Parameters.Add("@ImageContentType", OleDbType.VarChar, 50);
     myCommand.Parameters.Add("@ImageSize", OleDbType.BigInt);
     myCommand.Parameters["@ImageData"].Value = FileByteArray;
     myCommand.Parameters["@ImageContentType"].Value = UpFile.ContentType;
     myCommand.Parameters["@ImageSize"].Value = FileLength;
     
     // 执行数据库操作
     myCommand.Connection.Open();
     myCommand.ExecuteNonQuery();
     myCommand.Connection.Close();
     
    }
   }
   catch (Exception ex)
   {
    txtMessage.Text = ex.Message.ToString();
   }
  }
  
  
  
  
  

 


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>asp.net保存图片到数据库中</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
   
    <h3>保存图片到access数据库示例</h3>
   请选择要上传的图片:<input id="UP_FILE" type="file" size="24" name="UP_FILE" runat="server">
   
   <br><br>
   <asp:button id="SubmitButton" Runat="server" Text="上传图片" Width="239" onclick="Button_Submit">
   </asp:button>
   <br><br>
   
         <asp:label id="txtMessage" Runat="server" ForeColor="red"></asp:label>
        
         <br>
   
   
   
    </div>
    </form>
</body>
</html>

读取图片:

<img src="showimg.aspx?imgid=1">

    string ConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("img.mdb");
    string query = "SELECT * FROM imagetable where imgid="+Request["imgid"];

    OleDbCommand myCommand = new OleDbCommand(query, new OleDbConnection(ConnStr));
    myCommand.Connection.Open();

    OleDbDataReader dr = myCommand.ExecuteReader();

    if(dr.Read())
    {
     Response.ContentType = (string)dr["ImageContentType"];
     Response.OutputStream.Write((byte[])dr["ImageData"], 0, (int)dr["ImageSize"]);
    }
   
    dr.Close();
    myCommand.Connection.Close();

asp远程下载文件
javascript时间函数
asp中Server.MapPath错误
FSO获取图片大小,宽度,高度
方向键翻页
> 返回     
地址:上海市普陀区胶州路941号长久商务中心 电话: QQ:
© Copyright 2012 上海网络 All Rights Reserved