zoukankan      html  css  js  c++  java
  • 利用ASP下载远程文件到服务器

     这几个函数本来是封装在我自己的组件里了,正好有人需要,就单独提取出来了,调用download方法就可以下载文件了,程序会自动获取文件名,如果获取失败会以dat后缀保存文件

    <%

    '函数名:WritFile
    '
    作用:把指定二进制数据写入文件
    '
    参数:byt--二进制数据,file--要写入的文件名
    public Function WritFile(ByVal byt, ByVal fileName)   '写入文件函数
    on error resume next
     
    Dim objAso:set objAso=server.createobject("adodb.Stream")
         objAso.Type
    = 1
         objAso.Mode
    = 3
         objAso.Open
         objAso.Position
    = 0
         objAso.Write byt
         objAso.SaveToFile fileName,
    2
         objAso.Close
        
    Set objAso = Nothing
         WritFile
    = True
    End Function

    '函数名:Download
    '
    作用:下载文件
    '
    参数:URL-要获取的URL,savePath为文件保存地址
    Public Function Download(ByVal URL, ByVal savePath)
    On Error Resume Next
    Dim ResBody, sStr, vPath, fileName, vErr
    vErr
    = True
    vPath
    = Replace(savePath, "/", "\")
    If Right(vPath, 1) <> "\" Then vPath = vPath & "\"
    sPos
    = InStrRev(URL, "/") + 1
    sStr
    = Mid(URL, sPos)
    Set Http = Server.CreateObject("MICROSOFT.XMLHTTP")
    Http.Open
    "GET", URL, False
    Http.Send
    If Http.Readystate = 4 Then
     
    If Http.Status = 200 Then
         ResBody
    = Http.responseBody
            head
    = Http.getResponseHeader("content-disposition")
           
    If head <> "" Then
               startpos
    = InStr(head, "=") + 1
               fileName
    = Mid(head, startpos)
           
    ElseIf InStr(sStr, ".") > 0 And InStr(sStr, "?") <= 0 Then
               fileName
    = sStr
           
    Else
               fileName
    = Getname() & ".dat"
           
    End If
           
    If WritFile(ResBody, vPath & fileName) Then vErr = False
     
    End If
    End If
    Download
    = Not vErr
    End Function

    '函数名:getname
    '
    作用:按日期获取随机数字
    public Function Getname()
    on error resume next
       
    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

    call download("http://chat.ii-home.cn/down/objupload.rar",server.mappath("."))
    %
    >

  • 相关阅读:
    第一周2016/9/16
    团队项目计划会议
    电梯演讲视频
    团队项目成员与题目(本地地铁查询app)
    地铁查询相关问题汇总
    延长zencart1.5.x后台的15分钟登录时间和取消90天强制更换密码
    zencart1.5.x版管理员密码90天到期后台进入不了的解决办法
    通过SSH解压缩.tar.gz、.gz、.zip文件的方法
    html标签被div嵌套页面字体变大的解决办法
    zencart批量插入TEXT文本属性attributes
  • 原文地址:https://www.cnblogs.com/smallmuda/p/1379317.html
Copyright © 2011-2022 走看看