程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP上傳圖片功能的又一實現(OLE對象)

ASP上傳圖片功能的又一實現(OLE對象)

編輯:關於ASP編程
上次說到的上傳圖片是采用稻香老農開發的無組件上傳。其上傳過程是將圖片先保存到指定文件夾,與此同時將該路徑保存至數據庫字段的。顯示圖片則是根據數據庫表中的路徑字段對應顯示的。當然有關圖片的管理,比如刪除:只刪除了路徑,實際的圖片需要根據該路徑通過FSO進行刪除……

那有沒有這樣一種情況:將圖片直接作為一個字段的值保存。對圖片的操作就象是對數據字段的操作一樣熟練。答案是肯定的,只是將該字段的類型設為OLE對象

知識點:OLE 對象字段用來存儲諸如 Microsoft Word 或 Microsoft EXCEL 文檔、圖片、聲音的數據以及在別的程序中創建的其他類型的二進制數據。OLE 對象可以鏈接或嵌入到 Microsoft Access 表的字段中。

一、設計數據庫testimg.mdb

為方便調試,設計表imgurl,其中兩個字段:id(自動編號、關鍵字)、img(OLE 對象)

二、連接數據庫文件conn.asp



<%
db_path="testimg.mdb"
set conn=server.CreateObject("ADODB.connection")
connstr="driver={Microsoft Access Driver (*.mdb)};dbq="&server.MapPath(db_path)
conn.open connstr
%>



三、提供上傳圖片的表單頁面upload.html



<form action="upload.asp" method="post" enctype="multipart/form-data">
  <input type="file" name="imgurl">
  <input type="submit" name=ok value="ok">
</form>



四、接受數據並添加記錄頁upload.asp



<!--#include file="conn.asp"-->
<%
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13)&chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
set rs=server.createobject("ADODB.recordset")
rs.open "SELECT * FROM imgurl",conn,3,3
rs.addnew
rs("img").AppendChunk myData
rs.update
rs.close
set rs=nothing
set conn=nothing
response.redirect "index.asp"
%>



五、提取數據庫表中圖片字段內容以做顯示圖片頁showimg.asp



<!--#include file="conn.asp"-->
<%
set rs=server.createobject("ADODB.recordset")
sql="select * from imgurl where id="&trim(request("id"))
rs.open sql,conn,1,1
Response.ContentType="image/*"
Response.BinaryWrite rs("img").getChunk(8000000)
rs.close
set rs=nothing
set conn=nothing
%>



六、顯示圖片的index.asp



<!--#include file="conn.asp"-->
<%
strsql="select * from imgurl"
set rs=server.createobject("ADODB.recordset")
rs.open strsql,conn,1,1
do until rs.eof
whatid=rs("id")
%>
<img src="showimg.asp?id=<%=whatid%>">

<%
rs.movenext
loop%>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved