asp.net下如何在数据库中存取图片

 数据库中存取图片有两中方法:

一种:先上传文件到服务器的指定文件夹下在吧文件路径(文件名)插入数据库中 读取的时候直接读取。

二种:吧图片转换城二进制流在插入数据库中(sqlserver数据库中有个Image型可以存放图片类文件)。

看程序例子吧。

这个是页面文件。

Default.aspx

 

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

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

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>实现上传图片</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <table cellpadding="0" cellspacing="0" align="center">
            <tr>
                <td style="text-align: center; background-color: #ff9933;">
                    &nbsp;
                    <table align="center" cellpadding="0" cellspacing="0" style="background-color: #ffffcc" >
                        <tr>
                            <td style="width: 89px; text-align: center" rowspan="13">
                            </td>
                        </tr>
                         <tr>
                            <td style="width: 169px; text-align: center; height: 23px;">
                    <asp:Label ID="labPhone" runat="server" Text="头像" Font-Size="9pt" Width="37px"></asp:Label></td>
                            <td style="width: 135px; text-align: center; height: 23px;">
                                <asp:FileUpload ID="FileUpload1" runat="server" />
                                <asp:Button ID="Button1" runat="server" CausesValidation="False" OnClick="Button1_Click"
                                    Text="上传" /></td>
                            <td style="width: 149px; height: 23px;">
                            </td>
                        </tr>
                          <tr>
                             <td style="text-align: center; width: 169px;" >
                             </td>
                            <td style="width: 135px; text-align: left;">
                                <asp:Image ID="imgPhoto" runat="server" Height="120px" Width="103px" /></td>
                            <td style="width: 149px;" rowspan="2">
                            </td>
                        </tr>
                        
                    </table>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

 

 

主要是有个FileUpload控件。

现在看后台的代码:

 

 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    SqlConnection sqlcon;
    string strCon = "Data Source=F248D942B6D8438;Initial Catalog=db_04;Integrated Security=True";//数据库连接的字符串也可以换成从配置文件读取
    protected void Page_Load(object sender, EventArgs e)
    {
        sqlcon = new SqlConnection(strCon);
        sqlcon.Open();
        string sqlstr = "select * from tb_Image order by date desc";
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds = new DataSet();
        myda.Fill(myds, "tb_Image");
        DataRowView mydrv = myds.Tables["tb_Image"].DefaultView[0];
        imgPhoto.ImageUrl = Convert.ToString(mydrv["Image"]);
        sqlcon.Close();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string filePath = "", fileExtName = "", mFileName, mPath;
        if ("" != FileUpload1.PostedFile.FileName)
        {
            filePath = FileUpload1.PostedFile.FileName;
            fileExtName = filePath.Substring(filePath.LastIndexOf(".")+1);
            try
            {
                mPath = Server.MapPath("upFile/");
                mFileName = filePath.Substring(filePath.LastIndexOf("//") + 1);
                FileUpload1.PostedFile.SaveAs(mPath + mFileName);
                string sqlstr = "insert into tb_Image(Image) values('upFile//"+ mFileName + "')";
                sqlcon = new SqlConnection(strCon);
                sqlcon.Open();
                SqlCommand com = new SqlCommand(sqlstr,sqlcon);
                com.ExecuteNonQuery();
                sqlcon.Close();
                Page_Load(sender,e);
                imgPhoto.ImageUrl = "~/upFile/" + mFileName;//显示你上传的本地图片文件。
            }
            catch (Exception error)
            {
                Response.Write("<script>alert('" + error.ToString() + "')</script>");
            }
        }
     
    }
}

 

数据库文件。

 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tb_Image]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tb_Image]
GO

CREATE TABLE [dbo].[tb_Image] (
 [id] [bigint] IDENTITY (1, 1) NOT NULL ,
 [Image] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
 [date] [datetime] NULL
) ON [PRIMARY]
GO

 

代码可以运行。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值