从其他服务器上的url下载文件”;主机下载“-asp.net mvc

本文关键字:下载 主机 -asp mvc net 文件 服务器 其他 url | 更新日期: 2023-09-27 18:23:45

为了从服务器下载文件,我在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();

但是,如果我想从另一台服务器下载文件,例如从"主机下载"下载,该怎么办。我该怎么做?例如,我的下载直接链接是:CCD_,现在用户点击链接CCD_ 2下载该文件。现在我想在用户不知道我的可信链接在哪里以及我的主机下载在哪里的情况下将file.zip发送给用户。她或他只是选择要下载的文件。

谢谢你的帮助!

从其他服务器上的url下载文件”;主机下载“-asp.net mvc

您熟悉如何使用和/或设置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);
    }
}   

你好,我在.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);
}