·您的位置: 首页 » 资源教程 » 编程开发 » ASP » 无组件上传实例

无组件上传实例

类别: ASP教程  评论数:0 总得分:0
这是我从我以前写过的程序中分离出来的,由于这段代码是针对整体成体程序写的,因此功能非常简单,而且对于上传的数据也没有严格的限制,所以难免会出现这样或那样的错误。

我贴着篇文章主要是让大家了解一下无组件上传的思路,而不是让大家使用的。

<%

\'Yanhang.00上传程序V1.0
\'1.0版本的程序是从以前的程序修改过来的,但是可能还是仍有不足,如果你发现任何错误,请写信通知我,谢谢!
\'请在使用前先修改下面的信息
\'目前本程序我认为最大的不足就是只能用系统时间定义文件名,不能使用源文件名,这一点我会在以后的版本中改进。
\'Enjoy yourself!


\'程序制作:yanhang
\'email:yanhang@msn.com
\'技术支持:http://yanhang00.yeah.net
\'本程序要运行在ado 2.5以上版本环境下


\'#####################请修改以下信息#####################################
dim siteurl,picsavefolder,limitbyte,lsfilename
siteurl = "http://www.yours.com" \'网站地址(末尾不要有"/"符号)
picsavefolder = "uploadfile/" \'图片保存文件夹(以"/"符号结尾)
limitbyte = 300 \'文件大小限制,单位:k
\'######################################################################


\'#####################以下信息请不要修改#################################

if request.totalbytes < 192 then
%>
<html>
<head>
<title>文件上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<BODY>
<FORM name="form2" METHOD=POST ACTION="upload.asp" enctype="multipart/form-data">
请选择文件:
<INPUT TYPE="file" NAME="file">
<INPUT TYPE="submit" value="上传">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;大小限制:<%=limitbyte%>k
</FORM>
</BODY>
</html>
<%
else
dim contentlen
\'接收表单信息
contentlen=request.totalbytes

\'检测文件大小
if contentlen>limitbyte*1024 then
response.write "文件超过"&limitbyte&"k,不允许上传!"
else

dim content
\'读取上传文件信息
content=request.binaryread(request.totalbytes)

\'二进制相互转换函数
Function getByteString(StringStr)
For i=1 to Len(StringStr)
char=Mid(StringStr,i,1)
getByteString=getByteString&chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function

\'处理数据
dim upbeg,upend,lineone,linetwo,linethree,line1,line2,line3
upbeg=1
upend=instrb(upbeg,content,getbytestring(chr(10)))
lineone=midb(content,upbeg,upend-upbeg)
upbeg=upend+1
line1=lenb(lineone)
upend=instrb(upbeg,content,getbytestring(chr(10)))
linetwo=midb(content,upbeg,upend-upbeg)
upbeg=upend+1
line2=lenb(linetwo)
upend=instrb(upbeg,content,getbytestring(chr(13)))
linethree=midb(content,upbeg,upend-upbeg)
line3=lenb(linethree)

\'获得文件名
dim pp,checknametemp,checklen,checkname,filename
pp=instrb(1,linetwo,getbytestring(chr(46)))
checknametemp=rightb(linetwo,line2-pp+1)
checklen=instrb(1,checknametemp,getbytestring(chr(34)))
checkname=getstring(leftb(checknametemp,checklen-1))

\'检测文件后缀
if checkname<>"Content-Disposition: form-data; name=" then
if checkname=".txt" or checkname=".doc" or checkname=".gif" or checkname=".jpg" or checkname=".jpeg" or checkname=".zip" or checkname=".rar" or checkname=".bmp" or checkname=".png" or checkname=".tiff" then

\'定义文件名
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&checkname

\'上传文件
dim alllen,upstream,upstreamend,file
alllen=line1+line2+line3+6
set upstream=server.createobject("adodb.stream")
set upstreamend=server.createobject("adodb.stream")
upstream.type=1
upstreamend.type=1
upstream.open
upstreamend.open
upstream.write content
upstream.position=alllen
file=upstream.read(clng(contentlen-alllen-line1-5))
upstreamend.write file
upstreamend.savetofile(server.mappath(picsavefolder&filename))
upstream.close
upstreamend.close
set upstream=nothing
set upstreamend=nothing

response.write "文件上传成功!<br>文件名:"&siteurl&"/"&picsavefolder&filename

else
response.write "不允许上传"&checkname&"格式文件"
end if

else
response.write "您没有填写文件名"
end if

end if
end if
%>
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1