若相依 发表于 2015-1-16 23:35:17

ASP网站制作之无组件完成文件上传/下载

使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。上传|无组件|下载==================================================================--

用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
%>

</p>优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件

只想知道 发表于 2015-1-20 10:02:35

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

愤怒的大鸟 发表于 2015-1-29 06:44:06

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

小魔女 发表于 2015-2-5 23:28:31

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

灵魂腐蚀 发表于 2015-2-14 05:16:32

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。

谁可相欹 发表于 2015-3-4 04:49:17

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

老尸 发表于 2015-3-11 16:56:56

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

简单生活 发表于 2015-3-19 02:27:04

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

金色的骷髅 发表于 2015-3-27 05:10:40

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
页: [1]
查看完整版本: ASP网站制作之无组件完成文件上传/下载