无组件实现文件上传/下载
程序员文章站
2022-04-14 18:54:05
' 用asp实现无组件上传/下载文件 ' ' 功能简介 ' 将上传的文件数据保存到数据库中,可...
' 用asp实现无组件上传/下载文件
'
' 功能简介
' 将上传的文件数据保存到数据库中,可以处理表单中的多个上传文件的情况
' 适用于各种数据库,使用ado的方法连接数据库
' 本示例中使用的是access数据库:zj.mdb
' 表:tb_img(id int(自增列),path text(255) 保存上传文件的目录
' ,fname text(250) 保存上传的文件名,type test(250) 保存上传文件的类型
' ,img ole对象 保存上传的文件内容
'
'
'==================================================================
'==================================================================
'
' 上传文件的html页: zj_up.htm
'
'==================================================================
<html>
<head>
<title>文件上传保存到数据库中</title>
</head>
<body>
<form name="form1" enctype="multipart/form-data" method="post" action="zj_up.asp">
<p>
<input type="file" name="file">
<input type="submit" name="submit" value="上传">
</p>
</form>
</body>
</html>
'==================================================================
'
' 上传文件保存到数据库的asp页: zj_up.asp
'
'==================================================================
<%
response.expires=0
function f_bin2str(byval sbin)
dim ii, ilen, ichr, ire
ire = ""
if not isnull(sbin) then
ilen = lenb(sbin)
for ii = 1 to ilen
ichr = midb(sbin, ii, 1)
if ascb(ichr) > 127 then
ire = ire & chr(ascw(midb(sbin, ii + 1, 1) & ichr))
ii = ii + 1
else
ire = ire & chr(ascb(ichr))
end if
next
end if
f_bin2str = ire
end function
iconcstr = "provider=microsoft.jet.oledb.4.0;persist security info=false" & _
";data source=" & server.mappath("zj.mdb")
isql="tb_img"
set ire=server.createobject("adodb.recordset")
ire.open isql,iconcstr,1,3
ilen=request.totalbytes
sbin=request.binaryread(ilen)
icrlf1 = chrb(13) & chrb(10)
icrlf2 = icrlf1 & icrlf1
ilen = instrb(1, sbin, icrlf1) - 1
ispc = leftb(sbin, ilen)
sbin = midb(sbin, ilen + 34)
ipos1 = instrb(sbin, icrlf2) - 1
while ipos1 > 0
istr = f_bin2str(leftb(sbin, ipos1))
ipos1 = ipos1 + 5
ipos2 = instrb(ipos1, sbin, ispc)
ipos3 = instr(istr, "; filename=""") + 12
if ipos3 > 12 then
istr = mid(istr, ipos3)
ipos3 = instr(istr, chr(13) & chr(10) & "content-type: ") - 2
ifn = left(istr, ipos3)
if ifn <> "" then
ire.addnew
ire("path")=left(ifn,instrrev(ifn,"\"))
ire("fname") = mid(ifn,instrrev(ifn,"\")+1)
ire("type") = mid(istr, ipos3 + 18)
ire("img").appendchunk midb(sbin, ipos1, ipos2 - ipos1)
ire.update
end if
end if
sbin = midb(sbin, ipos2 + ilen + 34)
ipos1 = instrb(sbin, icrlf2) - 1
wend
ire.close
set ire=nothing
%>
'==================================================================
'
' 下载数据的asp页: zj_down.asp
'
'==================================================================
<%
response.buffer=true
response.clear
iconcstr = "provider=microsoft.jet.oledb.4.0;persist security info=false" & _
";data source=" & server.mappath("zj.mdb")
set ire=server.createobject("adodb.recordset")
isql="tb_img"
ire.open isql,iconcstr,1,1
response.contenttype=ire("type")
response.binarywrite ire("img")
ire.close
set ire=nothing
%>
'
' 功能简介
' 将上传的文件数据保存到数据库中,可以处理表单中的多个上传文件的情况
' 适用于各种数据库,使用ado的方法连接数据库
' 本示例中使用的是access数据库:zj.mdb
' 表:tb_img(id int(自增列),path text(255) 保存上传文件的目录
' ,fname text(250) 保存上传的文件名,type test(250) 保存上传文件的类型
' ,img ole对象 保存上传的文件内容
'
'
'==================================================================
'==================================================================
'
' 上传文件的html页: zj_up.htm
'
'==================================================================
复制代码 代码如下:
<html>
<head>
<title>文件上传保存到数据库中</title>
</head>
<body>
<form name="form1" enctype="multipart/form-data" method="post" action="zj_up.asp">
<p>
<input type="file" name="file">
<input type="submit" name="submit" value="上传">
</p>
</form>
</body>
</html>
'==================================================================
'
' 上传文件保存到数据库的asp页: zj_up.asp
'
'==================================================================
复制代码 代码如下:
<%
response.expires=0
function f_bin2str(byval sbin)
dim ii, ilen, ichr, ire
ire = ""
if not isnull(sbin) then
ilen = lenb(sbin)
for ii = 1 to ilen
ichr = midb(sbin, ii, 1)
if ascb(ichr) > 127 then
ire = ire & chr(ascw(midb(sbin, ii + 1, 1) & ichr))
ii = ii + 1
else
ire = ire & chr(ascb(ichr))
end if
next
end if
f_bin2str = ire
end function
iconcstr = "provider=microsoft.jet.oledb.4.0;persist security info=false" & _
";data source=" & server.mappath("zj.mdb")
isql="tb_img"
set ire=server.createobject("adodb.recordset")
ire.open isql,iconcstr,1,3
ilen=request.totalbytes
sbin=request.binaryread(ilen)
icrlf1 = chrb(13) & chrb(10)
icrlf2 = icrlf1 & icrlf1
ilen = instrb(1, sbin, icrlf1) - 1
ispc = leftb(sbin, ilen)
sbin = midb(sbin, ilen + 34)
ipos1 = instrb(sbin, icrlf2) - 1
while ipos1 > 0
istr = f_bin2str(leftb(sbin, ipos1))
ipos1 = ipos1 + 5
ipos2 = instrb(ipos1, sbin, ispc)
ipos3 = instr(istr, "; filename=""") + 12
if ipos3 > 12 then
istr = mid(istr, ipos3)
ipos3 = instr(istr, chr(13) & chr(10) & "content-type: ") - 2
ifn = left(istr, ipos3)
if ifn <> "" then
ire.addnew
ire("path")=left(ifn,instrrev(ifn,"\"))
ire("fname") = mid(ifn,instrrev(ifn,"\")+1)
ire("type") = mid(istr, ipos3 + 18)
ire("img").appendchunk midb(sbin, ipos1, ipos2 - ipos1)
ire.update
end if
end if
sbin = midb(sbin, ipos2 + ilen + 34)
ipos1 = instrb(sbin, icrlf2) - 1
wend
ire.close
set ire=nothing
%>
'==================================================================
'
' 下载数据的asp页: zj_down.asp
'
'==================================================================
复制代码 代码如下:
<%
response.buffer=true
response.clear
iconcstr = "provider=microsoft.jet.oledb.4.0;persist security info=false" & _
";data source=" & server.mappath("zj.mdb")
set ire=server.createobject("adodb.recordset")
isql="tb_img"
ire.open isql,iconcstr,1,1
response.contenttype=ire("type")
response.binarywrite ire("img")
ire.close
set ire=nothing
%>
上一篇: 服务器常用组件
下一篇: HTML-ul分分钟理解