【问题标题】:download file from url on other Server "Host Download" - asp.net mvc从其他服务器“主机下载”上的 url 下载文件 - asp.net mvc
【发布时间】:2015-11-20 20:31:00
【问题描述】:

为了从我的服务器下载文件,我在 asp.net MVC 中使用此方法:

string fileName = "SAMSUNG.zip";
string path = @"D:\Tutorial MVC5\ContosoUniversity\ContosoUniversity\dlfile\";
string fullPath = path + fileName;
Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.ContentType = "application/x-zip-compressed";
Response.WriteFile(fullPath);
Response.End();

但是,当我想从另一台服务器下载文件时,例如从“主机下载”中下载文件时该怎么办。我怎样才能做到这一点?比如我的下载直接链接是:http://dl.test.com/file.zip, 现在用户单击链接<a href="http://test.com/1">file.zip</a> 是下载文件。现在我想将file.zip 发送给用户,而用户不知道我的可信链接在哪里以及我的主机下载在哪里。她或他只是选择要下载的文件。

感谢您的帮助!

【问题讨论】:

  • 这不是 asp.net MVC 下载文件的方式。
  • 你试过什么..?这并不难..你熟悉WebClient Class..吗?我将发布一个我认为您正在尝试做的示例..
  • @user2310064 为什么不能使用示例并将 URL 作为参数传递.. 否则您希望如何将 URL 传递给最终用户..?

标签: c# asp.net-mvc download host


【解决方案1】:

你熟悉如何使用和或设置Request.Params 如果你想检查 QueryString,你的 url 最初应该是这样的

http://dl.test.com?file_name=SAMSUNG.zip

if(Request.Params["file_name"] == "SAMSUNG.zip"
{
    Uri uri = new Uri("http://dl.test.com/file.zip");
    using (var wc = new WebClient())
    using (var download = wc.OpenRead(uri))
    using (var respStream = Response.OutputStream)
    {
        download.CopyTo(respStream);
    }
}   

【讨论】:

  • 不,我不想下载文件,我只想给用户一个下载文件的直接链接,但他或她不知道真相链接在哪里??
  • 嗨,代码运行良好,但我从哪里获得下载的文件?
【解决方案2】:

您好,我在 .net Core 5 中使用了下一个代码

[HttpGet("Descargar")]
public FileResult Descargar(string url,string nombre)
{
    Uri uri = new Uri(url);
    WebClient wc = new WebClient();
    Stream downloadStream = wc.OpenRead(uri);
    MemoryStream ms = new MemoryStream();
    downloadStream.CopyTo(ms);
        
    return File(ms.ToArray(), System.Net.Mime.MediaTypeNames.Application.Octet, nombre);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 2011-04-25
    • 2018-07-08
    相关资源
    最近更新 更多