【问题标题】:Download a file that is written to the Response stream in ASP .NET C#下载在 ASP .NET C# 中写入响应流的文件
【发布时间】:2012-06-26 15:54:14
【问题描述】:

目标: - 服务器端:验证凭据后将文件写入响应流。换句话说,不能公开访问该文件。 - 客户端:从http://xyz.com?credentials=abc下载此文件

到目前为止,ASPX 页面执行以下操作:

  • 验证凭据
  • this.Response.ContentType = "application/octet-stream";
  • this.Response.BinaryWrite(binaryReader.ReadBytes(1024));

从 WinForms 应用程序下载此文件数据的最佳方式是什么?

【问题讨论】:

    标签: c# asp.net .net stream response


    【解决方案1】:

    最简单的方法是使用WebClient

    WebClient wc = new WebClient();
    wc.DownloadFile(url, filename);
    

    (不要在 UI 线程中启动它,或者使用异步版本。您不希望 UI 线程在下载时阻塞。)

    【讨论】:

    • 我假设在这种情况下文件不必通过 HTTP 公开访问,因为 URL 将包含凭据,并且文件将使用服务器端代码写入响应流?
    • @RaheelKhan:您可以设置 Web 客户端使用的凭据。该文件当然不必在 SMB 共享或类似的位置上可用。
    猜你喜欢
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多