无组件上传实例

上传|无组件

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

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

<%

'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="上传">     大小限制:<%=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
%>

时间: 2024-12-18 12:13:05

无组件上传实例的相关文章

ASP无组件上传类的应用实例

上传|无组件|应用实例|上传|无组件|应用实例 ''''''-------- upload.htm ------------- <script language="javascript">   function checkFile(myForm)    { if(myForm.File1.value=='') return false;    myForm.submit();     }</script><form method="POST&qu

ASP实例:一个简单的ASP无组件上传类

简单的ASP无组件上传类,发出来让大家看看.可以做做实验! 以下为引用的内容: <%@ language="javascript"%><%var self = Request.serverVariables("SCRIPT_NAME");if (Request.serverVariables("REQUEST_METHOD")=="POST"){        var oo = new uploadFile(

ASP实例:6行代码实现无组件上传

 目前有很多无组件上传类,我大概看了一下,大多写的相当复杂,有的居然还只能传文本  最关键的是没有10行代码以下的 :)  我花了一个晚上时间研究了一下ADODB.Stream,并且用了6行代码实现了无组件上传:  strFileName = Request.QueryString("file1")  Set objStream = Server.CreateObject("ADODB.Stream")  objStream.Type = 1 ' adTypeBin

Asp无组件上传带进度条(续)

上传|无组件 几个月前,写过一篇关于Asp无组件上传带进度条的Blog,当时主要分析了一下通过Web文件上传并在后台获取分析数据的实现原理.其中实现进度条的根本就是要实现分块获取数据,根据分块大小和块数记录已上传大小.还有一些具体的细节问题当时并没有说清楚: Q: 进度信息如何访问?A: 进度信息保存在Application中,每次上传时生成一个进度ID,根据这个进度ID可以检索Application中的当前上传进度信息. Q: 进度信息以什么形式保存在Application中?A: Asp太弱

最短的无组件上传代码(仅9行)

上传|无组件 我研究了一下无组件上传,并作出了一个最简单可行的方法----用9行代码真正实现无组件上传,怎么说来花了才半天就写了9行代码算是有点效率和成果.于是就写了这篇文章. formSize=Request.TotalBytes()formData=Request.BinaryRead(formSize)DataHeader=LeftB(formData,InStrB(formData,Chrb(13)&Chrb(10)))strFileData=MIDB(formData,LenB(Dat

无组件上传文件,一个函数搞定

函数|上传|无组件 本函数是用"化境ASP无组件上传程序2.0"上传文件.核心函数:<%'''''=============================='函数名:upfile'作用: 使用"化境上传组件"上传文件到服务器上'参数: file1 文件对象 ' savepath 文件要保存的相对路径,如"../"上一级上录,""同目录 ' maxsize 允许上传文件的最大值,单位KB.为0不限大小.' savetyp

Asp无组件上传进度条解决方案

解决|上传|无组件 一.无组件上传的原理我还是一点一点用一个实例来说明的吧,客户端HTML如下.要浏览上传附件,我们通过<input type="file">元素,但是一定要注意必须设置form的enctype属性为"multipart/form-data": <form method="post" action="upload.asp" enctype="multipart/form-data&q

Asp无组件上传进度条解决方案_应用技巧

一.无组件上传的原理我还是一点一点用一个实例来说明的吧,客户端HTML如下.要浏览上传附件,我们通过<input type="file">元素,但是一定要注意必须设置form的enctype属性为"multipart/form-data": <form method="post" action="upload.asp" enctype="multipart/form-data">&l

蛙蛙推荐:蛙蛙牌无组件上传类

上传|无组件|上传|无组件 <%'当表单里既有文本域又有文件域的时候,我们必须把表单的编码类型设置成"multipart/form-data"类型'这时候上传上来的编码文件并不能直接取出文本域的值和文件域的二进制数据,这就需要拆分表单域'在上传上来的数据流中在每个表单域间都有一个随机的分隔符,这个分隔符是在同一个流中不变的,不同的流分隔符不变,'这个分隔符在流的最开头,并且以一个chrb(13) + chrb(10)结束,知道这个后我们就可以用这个分隔符来遍历拆分表单域了.'对于