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语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况; 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 掌握asp的特性而且一定要知道为什么。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
页:
[1]