C# 通过REST从安全FTP下载文件

C# 通过REST从安全FTP下载文件,c#,asp.net,angularjs,ftp,C#,Asp.net,Angularjs,Ftp,我正试图弄清楚如何使用REST从AngularJS应用程序的安全FTP服务器下载文件 问题是,出于安全原因,我不能只将iframe或set window.location附加到ftp://myip:81/myfolder/myfile.pdf,因此我必须找到一种方法来触发下载,而无需此。我最初的想法是创建一个通用处理程序,它将文件名和文件夹名作为参数,然后通过context.Response将文件提供给用户 到目前为止,我得到的是: FtpWebRequest request = (FtpWeb

我正试图弄清楚如何使用REST从AngularJS应用程序的安全FTP服务器下载文件

问题是,出于安全原因,我不能只将iframe或set window.location附加到
ftp://myip:81/myfolder/myfile.pdf
,因此我必须找到一种方法来触发下载,而无需此。我最初的想法是创建一个通用处理程序,它将文件名和文件夹名作为参数,然后通过context.Response将文件提供给用户

到目前为止,我得到的是:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(path);
request.UsePassive = false;
request.Credentials = new NetworkCredential(ftpHelper.Username, ftpHelper.Password);
request.Method = WebRequestMethods.File.DownloadFile;

using (var response = (FtpWebResponse)request.GetResponse())
{
    using (Stream responseStream = response.GetResponseStream())
    {
        // stuck here ...
    }
}

request.Abort();
但我觉得这是不可能的;-)有人能证实/反驳吗?如果可以的话,我想要一个关于这个的小例子/提示:-)


谢谢

哦,这绝对有可能。您只需设置正确的头,清除默认响应,将文件写入响应流并结束请求。但是,从FTP请求文件相对昂贵。您不可能在FTP数据之上设置一个普通的web服务器吗?我喜欢使用MongoDB的GridFS来处理文件上传/下载。与使用FTP相比,它有一些优势。尼古拉斯·瓦兹:我必须仔细阅读MongoDB上的内容,可以肯定:-)看起来很整洁!谢谢卢安:你有这样的代码示例吗?:-)寻求灵感。此外,用户将下载的文件大小不到1MB,因此我想FtpWebRequest可以,是吗?;-)