当前位置: 移动技术网 > IT编程>开发语言>Asp > 无组件实现文件上传/下载

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

2017年12月12日  | 移动技术网IT编程  | 我要评论
' 用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 
%>

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网