快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

ASP向数据库读写IMAGE文件

题记:其实已经很久没动asp了,最近有不少人都在问这个问题
正好已经写好这个东东,于是贴出来,希望对一部分仍在用asp的网友有所帮助

用asp向SQLServer数据库读写image文件

一、发送image文件的表单
img_upload.asp

<form name="form1" ENCTYPE="multipart/form-data" ACTION="img_upfile.asp" METHOD="POST">
<input NAME="picture" TYPE="FILE">
</form>



二、接受表单发过来的image文件
在img_upfile.asp文件中,

response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
Function ImageUp(formsize,formdata)
bncrlf=chrb(13) & chrb(10)
divider=leftb(formdata,instrb(formdata,bncrlf)-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
Imageup=midb(formdata,datastart,dataend)
End Function
mydata = ImageUp(FormSize,Formdata)


通过以上代码后,image文件已经存在于变量mydata中

三、将image数据加入数据库中

Set rs_img = Server.CreateObject("ADODB.Recordset")
sql_img = "SELECT * FROM tbl_images where id=\\\'"&newid&"\\\'"
rs_img.Open sql_img,conn,1,3,1
If rs_img.eof Then
strinsert = 1
Else
strinsert = 0
End If
If strinsert = 1 Then
rs_img.addnew
rs_img("id") = newid
rs_img("class_id") = class_id
rs_img("img_data").appendchunk mydata
rs_img.update
Else
rs_img("class_id") = class_id
rs_img("img_data").appendchunk mydata
rs_img.update
End If
rs_img.close
set rs_img=nothing
set conn=nothing
以上代码先判定数据库中id记录为newid的字段内有没有数据,假如有则用当前数据更新数据库,若没有则将数据插入。
请注重:newid在别的地方定义,读者不必理会

四、读取数据库中的image文件并显示在网页上
  用以下代码将数据显示在网页上,请注重,<img>标签的src指示为showimg.asp文件。也就是就,<img>标签指向的不一定是.gif啊什么的。
<img src="showimg.asp?id=<%=rs_img("id")%>">

核心的部分在showimg.asp文件中:
Response.Expires = 0
Response.Buffer = TRUE
Response.Clear
Dim id
id = trim(Request("id"))
Response.ContentType = "image/*"
set rs_img=Server.Createobject("ADODB.Recordset")
sql="select * from tbl_images where id=\\\'"&id&"\\\'"
rs_img.open sql,conn,1,3,1

Dim img_size
img_size = rs_img("img_data").ActualSize
Response.BinaryWrite rs_img("img_data").getChunk(img_size)
rs_img.close
set rs_img=nothing
set conn=nothing

取出数据后,用Response.BinaryWrite和getChunk将其输出到浏览器上。
返回类别: 教程
上一教程: ACCESS2000数据库80万记录通用迅速分页类
下一教程: 在ASP中自动创建多级文件夹的函数

您可以阅读与"ASP向数据库读写IMAGE文件"相关的教程:
· [ASP]向数据库读写image文件
· ASP中从数据库读取二进制文件数据代码
· ASP中文本文件与数据库文件的数据交换
· ASP中文本文件与数据库文件的数据交换(FSO)
· 网络寻呼机数据库版隐藏文件WATCH.ASP
    微笑服务 优质保证 索取样品