快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

无组件上传实例

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

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

<%

\\\'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
%>
返回类别: 教程
上一教程: 数据库远程控制的ASP实现
下一教程: 在ASP中用组件检测当前网卡地址

您可以阅读与"无组件上传实例"相关的教程:
· ASP实例:6行代码实现无组件上传
· 无组件文件上传代码实例
· ASP无组件文件上传的实例
· 一个的无组件上传的ASP代码
· 无组件上传图片之文件采用方案
    微笑服务 优质保证 索取样品