纯ASP上传图像文件到数据库的最佳例子

来源:互联网 发布:远距离狙击模拟软件 编辑:程序博客网 时间:2024/05/16 00:53

纯ASP上传图像文件到数据库的最佳例子

IAmTrue 发表于2000-11-2 7:56:49 ASP地带 
getfile.htm 
------------------------- 
<html>

<head> 
<title>保存图片到数据库</title> 
</head>

<body> 
<b>

<p></b>你可以找个图片试试,保存完毕后会有提示</p>

<form METHOD="POST" ENCTYPE="multipart/form-data" ACTION="savetodb.asp"> 
<p>Email : <input NAME="email" VALUE="wangcq@sina.com" size="20"><br> 
Picture : <input TYPE="file" NAME="blob"><br> 
<input TYPE="submit" NAME="Enter"> </p> 
</form> 
</body> 
</html>

savetodb.asp 
---------------------------------- 
<%

Response.Buffer = TRUE 
Response.Clear 
byteCount = Request.TotalBytes

RequestBin = Request.BinaryRead(byteCount) 
Dim UploadRequest 
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

email = UploadRequest.Item("email").Item("Value")

contentType = UploadRequest.Item("blob").Item("ContentType") 
filepathname = UploadRequest.Item("blob").Item("FileName") 
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\")) 
picture = UploadRequest.Item("blob").Item("Value")

'Response.ContentType = contentType 
'Response.binaryWrite picture

set objCn = server.createobject("adodb.connection") 
set objRst = server.createobject("adodb.recordset") 
objCn.Open "upload" 
objrst.Open "pic", objcn, 1,3,2 
objrst.addnew 
objrst.fields("filename")=filename 
objrst.fields("type")="gif"

objrst.fields("what").appendchunk picture 
objrst.update 
response.write "<a href=showpic.asp?id=" & objrst("id") & ">第" & objrst("id") & "个图片。</a>" 
objrst.close

objCn.close 
set objrst=nothing 
set objcn = nothing 
%> 
<!--#include file="upload.asp"-->

showpic.asp 
---------------------------------------- 
<% 
set objCn = server.createobject("adodb.connection") 
set objRst = server.createobject("adodb.recordset") 
objCn.Open "upload" 
objrst.Open "select what from pic where id=" & request("id"), objcn

if not objrst.eof then 
response.binarywrite objrst("what") 
end if

objrst.close 
objCn.close 
set objrst=nothing 
set objcn = nothing 
%>


upload.asp 
------------------------------------------- 
<% 
Sub BuildUploadRequest(RequestBin) 
'Get the boundary 
PosBeg = 1 
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13))) 
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg) 
boundaryPos = InstrB(1,RequestBin,boundary) 
'Get all data inside the boundaries 
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--"))) 
'Members variable of objects are put in a dictionary object 
Dim UploadControl 
Set UploadControl = CreateObject("Scripting.Dictionary") 
'Get an object name 
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition")) 
Pos = InstrB(Pos,RequestBin,getByteString("name=")) 
PosBeg = Pos+6 
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34))) 
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg)) 
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename=")) 
PosBound = InstrB(PosEnd,RequestBin,boundary) 
'Test if object is of file ty

0 0