欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

无组件实现文件上传/下载

程序员文章站 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 
%>