热门搜索 :
考研考公
您的当前位置:首页正文

如何将图片存入数据库

来源:伴沃教育


在 SQL Server 中有一款数据类型 Image , 除了可以储存图档外它还可以储存大型的二进制数据档, 今天我们就来讨论如何将图文件存入去数据库.

第一步

创造数据表

在这个例咱要用到 SQL 内建的 Pubs 数据库来作测试, 请打开 QA 然后执行下底的创造数据表指令, 所要建立的数据表中一个字段是纪录档案的 Content-Type, 另一个则是储存图档

Use Pubs

Create Table ImgData

(

ImgID Int Identity Not Null Primary Key,

ContentType VarChar(20),

FileData Image

)

HTML 窗体部分

现在来看看 HTML 窗体的部分, 因为是用做档案上传因此用

enctype=\"multipart/form-data\" , 不过要注意的是一但使用了 form-data 后窗体数据的取得也就不能再用 Request.Form, 因为这不是这篇文章的重点所以在这就不多做解释, 请将下底的码存成 insert.htm

数据库存入图文件

File :

程序代码

搁来看麦 ASP 的部分, 请将下底的码存成 insert.asp

<%

Response.Buffer = True

ConnStr = \"Provider=SQLOLEDB;\" _

& \"Data Source=你的计算机名称;\" _

& \"Initial Catalog=Pubs;\" _

& \"User Id=sa;\" _

& \"Password=你的密码\"

'建立 oUpload 上传对象

Set oUpload = Server.CreateObject(\"Dundas.Upload.2\")

'在使用 oUpload 集合 (Collection) 前, 要先呼叫 Save 或 SaveToMemory 方法

oUpload.SaveToMemory

Set oRs = Server.CreateObject(\"Adodb.Recordset\")

oRs.Open \"ImgData\

oRs.AddNew

'呼叫 oUpload 对象的 ContentType, Binary 属性, 已取得我们要的资料

oRs(\"ContentType\").Value = oUpload.Files(0).ContentType

oRs(\"FileData\").Value = oUpload.Files(0).Binary

oRs.Update

oRs.Close

Set oRs = Nothing

%>

顶高的程序假设你只上传一个档案, 所以使用 oUpload.Files(0), 如果你一次上传一个以上的档案, 你可以将程序小改为

...

oRs.Open ...

For Each oFile In oUpload.Files

If InStr(1,oFile.ContentType,\"image\") <> 0 Then

oRs.AddNew

oRs(\"ContentType\").Value = oFile.ContentType

oRs(\"imgdata\").Value = oFile.Binary

End If

Next

oRs.Update

...

现在你可以利用浏览器开启 Insert.htm 来进行上传图文件到数据库的动作, 执行完后你可以 Select ImgData 数据表, 应该是出现一笔数据, 不过 FileData 字段应该是能懂的吧!

因篇幅问题不能全部显示,请点此查看更多更全内容

Top