ASP + ACCESS 上傳圖片到數(shù)據(jù)庫與將圖片讀出數(shù)據(jù)庫顯示之實現(xiàn)(詳細(xì)版)
ASP上傳圖片至數(shù)據(jù)庫內(nèi)功能的實現(xiàn)
一般的無組件上傳類,其上傳過程是將圖片先保存到指定文件夾,與此同時將該路徑保存至數(shù)據(jù)庫字段的。顯示圖片則是根據(jù)數(shù)據(jù)庫表中的路徑字段對應(yīng)顯示的。當(dāng)然有關(guān)圖片的管理,比如刪除:只刪除了路徑,實際的圖片需要根據(jù)該路徑通過FSO進(jìn)行刪除……那有沒有這樣一種情況:將圖片直接作為一個字段的值保存。對圖片的操作就象是對數(shù)據(jù)字段的操作一樣熟練。答案是肯定的,只是將該字段的類型設(shè)為OLE對象
知識點:OLE 對象字段用來存儲諸如 Microsoft Word 或 Microsoft EXCEL 文檔、圖片、聲音的數(shù)據(jù)以及在別的程序中創(chuàng)建的其他類型的二進(jìn)制數(shù)據(jù)。OLE 對象可以鏈接或嵌入到 Microsoft Access 表的字段中。
一、設(shè)計數(shù)據(jù)庫testimg.mdb
為方便調(diào)試,設(shè)計表imgurl,其中兩個字段:id(自動編號、關(guān)鍵字)、img(OLE 對象)
二、連接數(shù)據(jù)庫文件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>
四、接受數(shù)據(jù)并添加記錄頁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"
%>
五、提取數(shù)據(jù)庫表中圖片字段內(nèi)容以做顯示圖片頁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
%>
聲明:本頁內(nèi)容由湖南景煌網(wǎng)絡(luò)通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶參考;本站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如您認(rèn)為本網(wǎng)頁中有涉嫌抄寫的內(nèi)容,請及時與我們聯(lián)系進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系您,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。如果您對網(wǎng)站優(yōu)化核心技術(shù)文章感興趣,請點擊查看網(wǎng)站建設(shè)和網(wǎng)站推廣的相關(guān)文章,請關(guān)注湖南景煌網(wǎng)絡(luò)官網(wǎng)(www.banjiwang.cn)
全國7x24小時客服熱線
50倍賠付終端服務(wù)時間
部分產(chǎn)品可享受15天無理由退款
全國多家分公司便捷服務(wù)
持續(xù)陪伴企業(yè)成長,共創(chuàng),共贏
幫助企業(yè)建設(shè)全網(wǎng)營銷生態(tài)鏈
讓企業(yè)與用戶快速連接一切
為企業(yè)與用戶搭建共享開發(fā)平臺
0731-82272030
公司地址:長沙市雨花區(qū)韶山北路460號(原86號)興威名座北棟1202室
長沙市芙蓉區(qū)、天心區(qū)、岳麓區(qū)、開福區(qū)、雨花區(qū)、望城區(qū)均可提供上門洽談服務(wù)
湖南景煌網(wǎng)絡(luò)科技有限公司--為你提供網(wǎng)站建設(shè)、百度SEO、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、百度排名、小程序開發(fā)等服務(wù)
微信公眾號