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
    %>
    

      

  • 相关阅读:
    SpringBoot标准化搭建
    springboot打开swagger文档遇到For input string: ""的报错 swagger版本2.9.2
    MySQL和Redis如何保证数据一致性? 三种方案对比,初版
    [转]QUdpSocket收发信息
    [原][C++][插件]window下C++简单插件机制实现
    php saas 架构设计,SaaS的几种架构解析
    如何处理将HTML打印出来中的断行,分页,修改打印内容等问题?急,谢谢!!
    批量打印 | 多页打印 | PHP多页打印
    web页面的单页打印以及批量打印实现方法
    php批量打印发票三(php用FPDF合并所有图片为PDF文档)
  • 原文地址:https://www.cnblogs.com/billybobby/p/6281949.html
Copyright © 2011-2022 走看看