无组件实现文件上传/下载
无组件实现文件上传/下载
发布时间:2016-12-29 来源:查字典编辑
摘要:'用ASP实现无组件上传/下载文件''功能简介'将上传的文件数据保存到数据库中,可以处理表单中的多个上传文件的情况'适用于各种数据库,使用A...

'用ASP实现无组件上传/下载文件

'

'功能简介

'将上传的文件数据保存到数据库中,可以处理表单中的多个上传文件的情况

'适用于各种数据库,使用ADO的方法连接数据库

'本示例中使用的是ACCESS数据库:zj.mdb

'表:tb_img(idint(自增列),pathtext(255)保存上传文件的目录

',fnametext(250)保存上传的文件名,typetest(250)保存上传文件的类型

',imgole对象保存上传的文件内容

'

'

'==================================================================

'==================================================================

'

'上传文件的HTML页:zj_up.htm

'

'================================================================== 复制代码 代码如下:

<html>

<head>

<title>文件上传保存到数据库中</title>

</head>

<body>

<formname="form1"enctype="multipart/form-data"method="post"action="zj_up.asp">

<p>

<inputtype="file"name="file">

<inputtype="submit"name="Submit"value="上传">

</p>

</form>

</body>

</html>

'==================================================================

'

'上传文件保存到数据库的ASP页:zj_up.asp

'

'================================================================== 复制代码 代码如下:

<%

Response.Expires=0

Functionf_Bin2Str(ByValsBin)

DimiI,iLen,iChr,iRe

iRe=""

IfNotIsNull(sBin)Then

iLen=LenB(sBin)

ForiI=1ToiLen

iChr=MidB(sBin,iI,1)

IfAscB(iChr)>127Then

iRe=iRe&Chr(AscW(MidB(sBin,iI+1,1)&iChr))

iI=iI+1

Else

iRe=iRe&Chr(AscB(iChr))

EndIf

Next

EndIf

f_Bin2Str=iRe

EndFunction

iConcStr="Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurityInfo=False"&_

";DataSource="&server.mappath("zj.mdb")

iSql="tb_img"

setiRe=Server.CreateObject("ADODB.Recordset")

iRe.OpeniSql,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

WhileiPos1>0

iStr=f_Bin2Str(LeftB(sBin,iPos1))

iPos1=iPos1+5

iPos2=InStrB(iPos1,sBin,iSpc)

iPos3=InStr(iStr,";filename=""")+12

IfiPos3>12Then

iStr=Mid(iStr,iPos3)

iPos3=InStr(iStr,Chr(13)&Chr(10)&"Content-Type:")-2

iFn=Left(iStr,iPos3)

IfiFn<>""Then

iRe.AddNew

ire("path")=left(iFn,instrrev(iFn,""))

iRe("fname")=mid(iFn,instrrev(iFn,"")+1)

iRe("type")=Mid(iStr,iPos3+18)

iRe("img").AppendChunkMidB(sBin,iPos1,iPos2-iPos1)

iRe.Update

EndIf

EndIf

sBin=MidB(sBin,iPos2+iLen+34)

iPos1=InStrB(sBin,iCrlf2)-1

Wend

iRe.close

setiRe=Nothing

%>

'==================================================================

'

'下载数据的ASP页:zj_down.asp

'

'================================================================== 复制代码 代码如下:

<%

Response.Buffer=true

Response.Clear

iConcStr="Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurityInfo=False"&_

";DataSource="&server.mappath("zj.mdb")

setiRe=server.createobject("adodb.recordset")

iSql="tb_img"

iRe.openiSql,iconcstr,1,1

Response.ContentType=ire("type")

Response.BinaryWriteiRe("img")

iRe.close

setiRe=Nothing

%>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新ASP教程学习
热门ASP教程学习
编程开发子分类