怎样用asp实现,下载指定网址文件,并重命名后保存到本地服务器上?

怎样用asp实现,下载指定网址文件,并重命名后保存到本地服务器上?,第1张

download.asp

<%

'Code By oday

url =Trim(Request.QueryString("url")) '注意URL路径上的文件不能是被IIS解析的,如.txt就不行,要用的话自己改个后缀

fname=Trim(Request.QueryString("fname"))

if url <>"" then 'and fname<>"" then

Set xPost = CreateObject("Microsoft.XMLHTTP")

xPost.Open "GET",url,False

xPost.Send()

Set sGet = CreateObject("ADODB.Stream")

sGet.Mode = 3

sGet.Type = 1

sGet.Open()

sGet.Write(xPost.responseBody)

sGet.SaveToFile Server.MapPath(".")&"/"&fname,2

set sGet = nothing

set sPOST = nothing

response.Write("下载成功!<br>")

end if

%>

test.asp

<script>

location.href="download1.asp?url="+escape("http://58.211.102.206/hi/流行音乐/青花瓷.mp3")+"&fname=demo.mp3"

</script>

现在 这个可以运行了!!原来那个 ajax 有点问题!

以下是我自己的一个公共方法,请参考。

首先要添加命名空间引用

using System.IO

FileName是自定义要下载的文件的名称

FilePath是文件的实际存放路径

    public static void DownloadFile(string FileName, string FilePath)

    {

        FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read)

        byte[] buffer = new byte[fs.Length]

        int totalLength = (int)fs.Length

        int totalReadLength = 0

        while (totalLength > 0)

        {

            int readLength = fs.Read(buffer, totalReadLength, Math.Min(totalLength, int.MaxValue))

            if (readLength == 0)

            {

                break

            }

            totalReadLength += readLength

            totalLength -= readLength

        }

        fs.Close()

        HttpContext.Current.Response.Charset = "UTF-8"

        HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment filename=" + FileName))

        HttpContext.Current.Response.BinaryWrite(buffer)

        HttpContext.Current.Response.OutputStream.Flush()

        HttpContext.Current.Response.End()

    }

嗯,这个其实就是一个超链接连过去就行了。要知道远程文件的url就可以。

比如说:<a href="http://www.rarlab.com/rar/wrar393.exe">下载</a>

或是用js打开远程文件的url。

一般来说迅雷都能够捕捉到的,但并不能100%确保(谁都不能确保)

缺点:远程文件如果设置了防盗链,就没用了

如果你说的“远程服务器”是内网的,那没办法做到的


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/196193.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存