C# .net 如何将FTP上的文件下载到web客户端

yanele 2020-01-14 01:57:20
初步测试,webForm应用可以直接将客户端的文件上传到FTP服务器上去【而不是web服务器】,
但是下载始终没能实现,C# .net应用如何将FTP服务器上的文件直接下载到web客户端,最好是能提示直接打开,还是保存到默认地址或可以另存为进行选择。
...全文
536 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2020-01-14
  • 打赏
  • 举报
回复
离了web你们怎么办 好了 1.打开vs,新建一个控制台。 2.在nuget搜索“ftpclient”(net自己的库也可以,不过要说方便还是nuget上那几个提供方便) 3.按照人家的git上demo把控制台完成(目标:下载指定ftp文件到本地,或者MemoryStream) 好了,你有一个本地文件,或者一个MemoryStream了,剩下才是web的事情。response.write 出一个本地文件或MemoryStream你应该会了 再说一句“net core”不是“asp.net mvc core”,如果要net core,今后你们将有一半的时间工作在控制台上,而不是所谓的asp.net mvc core上
yanele 2020-01-14
  • 打赏
  • 举报
回复
不知道可不可以,把FTP上的文件读取出来,转换成文件流的形式,再交给浏览器打开或下载。
HerryDong 2020-01-14
  • 打赏
  • 举报
回复
建议还是用js+html实现
github_36000833 2020-01-14
  • 打赏
  • 举报
回复
chrom浏览器计划2020第一季度放弃ftp支持。
github_36000833 2020-01-14
  • 打赏
  • 举报
回复
chrom浏览器计划2020第一季度放弃fpt支持。
github_36000833 2020-01-14
  • 打赏
  • 举报
回复
如果你有把握所有的浏览器都支持ftp scheme,也可以用重定向: [HttpGet] public IActionResult Down() { return this.Redirect("ftp://speedtest.tele2.net/1KB.zip"); // 匿名ftp }
yanele 2020-01-14
  • 打赏
  • 举报
回复
没有理解到,是需要将FTP文件下载到Web服务器,再从Web服务器转到web客户端吗?
github_36000833 2020-01-14
  • 打赏
  • 举报
回复
FTP下载可以用WebClient,或者FtpWebRequest。 指示web客户端保存文件,可以设置Http Content-Disposition为attachment,指示附件下载。 FtpWebRequest的例子(比WebClient好些,服务器可以直接过手文件流,而不必保存或下载到内存)。

[HttpGet]
public async Task Get()
{
    var ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://speedtest.tele2.net/1KB.zip");
    using (var response = ftpRequest.GetResponse())
    using (var stream = response.GetResponseStream())
    {
        Response.Headers.Add("Content-Disposition", "attachment; filename=1KB.dat");
        Response.ContentType = "application/octet-stream";
        await stream.CopyToAsync(Response.Body);
    }
}

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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