知道其他网站的url下载地址,我想通过我自己的网站下载怎么做?

Json1204 2015-12-28 03:52:00
比如有个已知的 HTTP://download.xxx.com/1.zip 文件下载路径
我想直接用我网站 比如 www.abc/1.zip 这样来下载 改怎么实现呢? 就是相当于我这边做了个中转,用户发现不了真实地址
...全文
357 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
while((len= remoteStream.Read(buffer,0, buffer))>0) Response.OutputStream.Write(buffer,0, len); 这是一个很标准很常用的“两个stream之间复制内容”的方式。从拷贝文件,视频流,到拷贝这种下载内容,都是使用它。如果你在以前的教科书上没有学习过,那么现在就记住它。
  • 打赏
  • 举报
回复
当然如果使用 ashx,那么连最后一句 Response.End 也不需要写。 你在 #7 楼贴的代码的主要思路,也是可以的。但是就像 #7 楼所说的一样,你不应该使用 StreamReader,就是使用简单直接的 while((len= remoteStream.Read(buffer,0, buffer)_>0) Response.OutputStream.Write(buffer,0, len); 这样的byte方式就行了。
  • 打赏
  • 举报
回复
我们的 android apk文件是使用 PhoneGap Build编译,但是亚马逊 aws s3服务被我们伟大的祖国屏蔽了,通常只要20秒钟就能下载成功的资料,使用迅雷的等等工具,连续12个小时反复下载往往也下载不下来。所以我们就在美国租了一个空间,从美国下载,然后国内再来访问我们自己的这个空间。代码很简单
using System;
using System.Net;

public partial class med2_DownAd : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.AddHeader("Content-disposition", "attachment; filename=ad.apk");
        byte[] data= new WebClient().DownloadData("https://build.phonegap.com/apps/752445/download/android/?qr_key=dAg8zjprxkH88888888");
        Response.OutputStream.Write(data, 0, data.Length);
        Response.End();
    }
}
Poopaye 2015-12-28
  • 打赏
  • 举报
回复
引用 9 楼 Json1204 的回复:
大神求具体写法...
StreamReader换成BinaryReader Response.Write换成Response.BinaryWrite 你是传2进制文件,不是文本文件
Json1204 2015-12-28
  • 打赏
  • 举报
回复
引用 7 楼 shingoscar 的回复:
[quote=引用 1 楼 Json1204 的回复:] 这是我写的 但是好像不行 解压出错

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(streamReceive, Encoding.Default);
                string info = streamReader.ReadToEnd();


                Response.Clear();
                Response.Buffer = false;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("content-disposition", "attachment;filename=ff.txt;");

                Response.Write(info);

                Response.Flush();
                Response.End();
用BinaryReader/Writer[/quote] 大神求具体写法...
Json1204 2015-12-28
  • 打赏
  • 举报
回复
引用 8 楼 fei2yun 的回复:
文件有多大呢?只能单线程下载? 小文件,你这种方式是可以的,打开之后输出流。多线程下载应该不行
小文件 求具体写法
Poopaye 2015-12-28
  • 打赏
  • 举报
回复
引用 1 楼 Json1204 的回复:
这是我写的 但是好像不行 解压出错

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(streamReceive, Encoding.Default);
                string info = streamReader.ReadToEnd();


                Response.Clear();
                Response.Buffer = false;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("content-disposition", "attachment;filename=ff.txt;");

                Response.Write(info);

                Response.Flush();
                Response.End();
用BinaryReader/Writer
Json1204 2015-12-28
  • 打赏
  • 举报
回复
来个大神呀
Json1204 2015-12-28
  • 打赏
  • 举报
回复
顶 在线等
Json1204 2015-12-28
  • 打赏
  • 举报
回复
引用 3 楼 qq_25768813 的回复:
在下载页面添加一个表单,用post的方式进行提交 不过这个也只能说不跳转到别人网站上,但是下载软件或者浏览器自带的下载功能,在显示下载源的时候,还是显示的别人网站 示例如下: <form action="http://misc.wcd.qq.com/app?packageName=qqpcmgr&channelId=86137" method="post"> <input type="submit"/> </form>
额 这个了解 我需要的是 直接隐藏真实地址了
冉娃娃 2015-12-28
  • 打赏
  • 举报
回复
在下载页面添加一个表单,用post的方式进行提交 不过这个也只能说不跳转到别人网站上,但是下载软件或者浏览器自带的下载功能,在显示下载源的时候,还是显示的别人网站 示例如下: <form action="http://misc.wcd.qq.com/app?packageName=qqpcmgr&channelId=86137" method="post"> <input type="submit"/> </form>
Json1204 2015-12-28
  • 打赏
  • 举报
回复
引用 1 楼 Json1204 的回复:
这是我写的 但是好像不行 解压出错

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(streamReceive, Encoding.Default);
                string info = streamReader.ReadToEnd();


                Response.Clear();
                Response.Buffer = false;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("content-disposition", "attachment;filename=ff.txt;");

                Response.Write(info);

                Response.Flush();
                Response.End();
Response.AppendHeader("content-disposition", "attachment;filename=ff.zip;");
Json1204 2015-12-28
  • 打赏
  • 举报
回复
这是我写的 但是好像不行 解压出错

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(streamReceive, Encoding.Default);
                string info = streamReader.ReadToEnd();


                Response.Clear();
                Response.Buffer = false;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("content-disposition", "attachment;filename=ff.txt;");

                Response.Write(info);

                Response.Flush();
                Response.End();

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧