若天明 发表于 2015-1-16 22:57:43

ASP教程之ASP 无组件上传

使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。上传|无组件ASP无组件上传



申明:从网上搜集了一部分,本人写了一部分。次要提拔就是关于form的二进制数据举行了类封装,能够简单的失掉form内的元素的信息。



Form二进制数据格局:



支解标记数据+0x0D0A

元素申明信息+0x0D0A0D0A

元素内容数据+0x0D0A



支解标记数据+0x0D0A

元素申明信息+0x0D0A0D0A

元素内容数据+0x0D0A



……



支解标记数据+0x0D0A





1.Upload.htm



<html>

  <head><title>文件上传</title></head>

  <body>

<formenctype="multipart/form-data"action="upload.asp"method="post">

<inputname="text0"type=textvalue="文本框"><br>

<inputname="file1"type=fileaccept="image/*"><br>

<inputname="file2"type=fileaccept="image/*"><br>

<inputtype=submitvalue="上传">

</form>

  </body>

</html>



2.upload.asp

<!--#includefile="upload.inc"-->

<%

bysam2004,6

###############################################################################

response.expires=0



ifrequest.servervariables("REQUEST_METHOD")="POST"then

response.clear()

response.buffer=true



setuform=newuploadform

uform.find_element"text0"



data=midb(uform.formdata,uform.datastart,uform.datalen)

Response.binaryWritedata

sdata=binarytostring(data)

Response.writesdata

Response.binarywritestringtobinary(sdata)









uform.find_element"file1"

savefileserver.mappath("/recv1.dat"),uform.formdata,uform.datastart,uform.datalen



uform.find_element"file2"

savefileserver.mappath("/recv2.dat"),uform.formdata,uform.datastart,uform.datalen





setuform=nothing



endif

%>



3.upload.inc

<%

bysam2004,6

#################################################################

functionsavefile(filename,formdata,start,len)



setstrm1=server.createobject("adodb.stream")

setstrm2=server.createobject("adodb.stream")

strm1.open

strm1.type=1binary

strm2.open

strm2.type=1binary

strm1.writeformdata

strm1.savetofileserver.mappath("/1.raw"),2

strm1.position=start-1

strm1.copytostrm2,len

strm2.savetofileserver.mappath("/1.gif"),2

strm2.savetofilefilename,2

setstrm1=nothing

setstrm2=nothing



endfunction





functionsimplebinarytostring(binary)

dimi,s

fori=1tolenb(binary)

s=s&chr(ascb(midb(binary,i,1)))

next

simplebinarytostring=s

endfunction



functionbinarytostring(binary)

dimcl1,cl2,cl3,pl1,pl2,pl3

diml

cl1=1

cl2=1

cl3=1

l=lenb(binary)



dowhilecl1<=l

pl3=pl3&chr(ascb(midb(binary,cl1,1)))

cl1=cl1+1

cl3=cl3+1

ifcl3>300then

pl2=pl2&pl3

pl3=""

cl3=1

cl2=cl2+1

ifcl2>200then

pl1=pl1&pl2

pl2=""

cl2=1

endif

endif

loop

binarytostring=pl1&pl2&pl3

endfunction




</p>由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;

乐观 发表于 2015-1-20 06:46:33

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

因胸联盟 发表于 2015-1-25 23:19:29

还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。

愤怒的大鸟 发表于 2015-2-2 17:25:21

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

小妖女 发表于 2015-2-8 02:51:21

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

若相依 发表于 2015-2-24 02:56:58

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

第二个灵魂 发表于 2015-3-7 10:37:38

掌握asp的特性而且一定要知道为什么。

飘飘悠悠 发表于 2015-3-14 23:59:01

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
页: [1]
查看完整版本: ASP教程之ASP 无组件上传