zoukankan      html  css  js  c++  java
  • ASP文件上传代码

     在网上看到的代码,稍微有点问题,改了一下就可以了。Chrome下是可以用的,别的浏览器还没有确认。

    <%
      Response.Buffer = True
      Server.ScriptTimeOut=9999999
      On Error Resume Next
    %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta http-equiv="Content-Language" content="zh-cn" />
    <meta content="all" name="robots" /> 
    <meta name="author" content="木目,Woodeye" />
    <meta name="description" content="木目ASP文件上传工具" /> 
    <meta name="keywords" content="木目,ASP,Upload,文件上传" />
    <style type="text/css">
    <!--
    body,input {font-size:12px;}
    -->
    </style>
    <title>木目ASP文件上传工具</title>
    </head>
    <body id="body">
    <%
      ExtName = "jpg,gif,png,bmp"    '允许扩展名
      SavePath = "image"          '保存路径
      If Right(SavePath,1)<>"/" Then SavePath=SavePath&"/" '在目录后加(/)
      CheckAndCreateFolder(SavePath)
    
      UpLoadAll_a = Request.TotalBytes '取得客户端全部内容
      If(UpLoadAll_a>0) Then
        Set UploadStream_c = Server.CreateObject("ADODB.Stream")
        UploadStream_c.Type = 1
        UploadStream_c.Open
        UploadStream_c.Write Request.BinaryRead(UpLoadAll_a) 
        UploadStream_c.Position = 0
    
        FormDataAll_d = UploadStream_c.Read
        CrLf_e = chrB(13)&chrB(10)
        FormStart_f = InStrB(FormDataAll_d,CrLf_e)
        FormEnd_g = InStrB(FormStart_f+1,FormDataAll_d,CrLf_e)
    
        Set FormStream_h = Server.Createobject("ADODB.Stream")
        FormStream_h.Type = 1
        FormStream_h.Open
        UploadStream_c.Position = FormStart_f + 1
        UploadStream_c.CopyTo FormStream_h,FormEnd_g-FormStart_f-3
        FormStream_h.Position = 0
        FormStream_h.Type = 2
        FormStream_h.CharSet = "GB2312"
        FormStreamText_i = FormStream_h.Readtext
        FormStream_h.Close
       
        FileName_j = Mid(FormStreamText_i,InstrRev(FormStreamText_i,"filename=")+10,FormEnd_g)
        
        If(CheckFileExt(FileName_j,ExtName)) Then
    	   
          SaveFile = Server.MapPath(SavePath & FileName_j)
    
          If Err Then
            Response.Write "文件上传: <span style=""color:red;"">文件上传出错!</span> <a href=""" & Request.ServerVariables("URL") &""">重新上传文件</a><br />"
            Err.Clear
          Else
            SaveFile = CheckFileExists(SaveFile)
            
            k=Instrb(FormDataAll_d,CrLf_e&CrLf_e)+4
            l=Instrb(k+1,FormDataAll_d,leftB(FormDataAll_d,FormStart_f-1))-k-2
            FormStream_h.Type=1
            FormStream_h.Open
            UploadStream_c.Position=k-1
            UploadStream_c.CopyTo FormStream_h,l
            FormStream_h.SaveToFile SaveFile,2
             
            SaveFileName = Mid(SaveFile,InstrRev(SaveFile,"\")+1)
            Response.write "文件上传: <span style=""color:red;"">" & SaveFileName & " </span>文件上传成功! <a href=""" & Request.ServerVariables("URL") &""">继续上传文件</a><br />"
          End If
        Else
          Response.write "文件上传: <span style=""color:red;"">文件格式不正确!</span> <a href=""" & Request.ServerVariables("URL") &""">重新上传文件</a><br />"
        End If
    
      Else
    %>
    <script language="Javascript">
    <!--
    function ValidInput()
    {
        
    if(document.upform.upfile.value=="") 
      {
        alert("请选择上传文件!")
        document.upform.upfile.focus()
        return false
      }
      return true
    }
    // -->
    </script>
    <form action='<%= Request.ServerVariables("URL") %>' method='post' name="upform" onsubmit="return ValidInput()"  enctype="multipart/form-data">
    文件上传:
    <input type='file' name='upfile' size="40"> <input type='submit' value="上传">
    </form>
    <%
      End if
      Set FormStream_h = Nothing
      UploadStream.Close
      Set UploadStream = Nothing
    %>
    </body>
    </html>
    <%
      '判断文件类型是否合格
      Function CheckFileExt(FileName,ExtName) '文件名,允许上传文件类型
        FileType = ExtName 
        FileType = Split(FileType,",")
        For i = 0 To Ubound(FileType)
          If LCase(Right(FileName,3)) = LCase(FileType(i)) then
          CheckFileExt = True
          Exit Function
          Else
          CheckFileExt = False
          End if
        Next
      End Function
    
      '检查上传文件夹是否存在,不存在则创建文件夹
      Function CheckAndCreateFolder(FolderName)
        fldr = Server.Mappath(FolderName)
        Set fso = CreateObject("Scripting.FileSystemObject")
        If Not fso.FolderExists(fldr) Then
          fso.CreateFolder(fldr)
        End If
        Set fso = Nothing
      End Function
    
    '检查文件是否存在,重命名存在文件
    Function CheckFileExists(FileName)
      Set fso=Server.CreateObject("Scripting.FileSystemObject")
      If fso.FileExists(SaveFile) Then
        i=1
        msg=True
        Do While msg
          CheckFileExists = Replace(SaveFile,Right(SaveFile,4),"_" & i & Right(SaveFile,4))
          If not fso.FileExists(CheckFileExists) Then
            msg=False
          End If
          i=i+1
        Loop
      Else
        CheckFileExists = FileName
      End If
      Set fso=Nothing
    End Function
    %>
    

      

  • 相关阅读:
    PAT (Advanced Level) Practice 1100 Mars Numbers (20分)
    PAT (Advanced Level) Practice 1107 Social Clusters (30分) (并查集)
    PAT (Advanced Level) Practice 1105 Spiral Matrix (25分)
    PAT (Advanced Level) Practice 1104 Sum of Number Segments (20分)
    PAT (Advanced Level) Practice 1111 Online Map (30分) (两次迪杰斯特拉混合)
    PAT (Advanced Level) Practice 1110 Complete Binary Tree (25分) (完全二叉树的判断+分享致命婴幼儿错误)
    PAT (Advanced Level) Practice 1109 Group Photo (25分)
    PAT (Advanced Level) Practice 1108 Finding Average (20分)
    P6225 [eJOI2019]异或橙子 树状数组 异或 位运算
    P4124 [CQOI2016]手机号码 数位DP
  • 原文地址:https://www.cnblogs.com/billybobby/p/6281949.html
Copyright © 2011-2022 走看看