为了从我的服务器下载文件,我在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
,而用户不知道我的可信链接在哪里以及主机下载的位置。她或他只是选择要下载的文件。
感谢您的帮助!
答案 0 :(得分:3)
您熟悉如何使用和/或设置Request.Params
如果你想检查QueryString
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);
}
}
答案 1 :(得分:0)
你好,我在 .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);
}