asp文件上传

来源:互联网 发布:圣诞节礼物 知乎 编辑:程序博客网 时间:2024/06/17 16:01

6行代码实现无组件上传

stimson(原作)

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

strFileName   =   Request.QueryString( "file1 ")
Set   objStream   =   Server.CreateObject( "ADODB.Stream ")
objStream.Type   =   1   '   adTypeBinary
objStream.Open
objStream.LoadFromFile   strFileName
objStream.SaveToFile   Server. "123_onweb.gif ",2


使用方法:
把上面的代码写成upload.asp
在浏览器里面输入:
http://XXX/upload.asp?file1=c:上传文件123.gif
XXX为你的主机地址
执行完后你会看到你的目录下面多了一个123_onweb.gif
他就是你要文件拉!!!!


根据原理我们可以扩展以下代码:
upload.asp文件
<%
Function   GetFileName(ByVal   strFile)
    If   strFile   <>   " "   Then
      GetFileName   =   mid(strFile,InStrRev(strFile,   " ")+1)
    Else
      GetFileName   =   " "
    End   If
End     function

strFileName   =   Request.Form( "file1 ")
Set   objStream   =   Server.CreateObject( "ADODB.Stream ")
objStream.Type   =   1   '   adTypeBinary
objStream.Open
objStream.LoadFromFile   strFileName
objStream.SaveToFile   Server.MapPath(GetFileName(strFileName)),2
objStream.Close
%>

upload.htm文件
<form   name= "FORM "   action= "upload.asp "   method= "post ">
   <input   type= "submit "   name= "submit "   value= "OK ">
          <input   type= "file "   name= "file1 "   style= "width:400 "     value= " ">
</form>

 

 

'==============================
 '根据日期生成随机文件名
'==============================
 Private Function Getname()
    Dim y, m, d, h, mm, S, r
    Randomize
    y = Year(Now)
    m = Month(Now): If m < 10 Then m = "0" & m
    d = Day(Now): If d < 10 Then d = "0" & d
    h = Hour(Now): If h < 10 Then h = "0" & h
    mm = Minute(Now): If mm < 10 Then mm = "0" & mm
    S = Second(Now): If S < 10 Then S = "0" & S
    r = 0
    r = CInt(Rnd() * 1000)
    If r < 10 Then r = "00" & r
    If r < 100 And r >= 10 Then r = "0" & r
    Getname = y & m & d & h & mm & S & r
 End Function

 

 

原创粉丝点击