流以在.net中下载时将缓冲的数据输出回浏览器

时间:2016-09-28 09:36:57

标签: c# asp.net vb.net google-api google-drive-api

我从流中获取google drive api v3的文件内容。

  

Dim stream As New System.IO.MemoryStream()

     

request.Download(流)

以上行将文件内容下载到流中。到目前为止一切都很好。

现在我想在客户端浏览器上下载此文件流。我已经浏览了一些示例代码,所有代码都从http响应中下载文件。当我使用该脚本并传递我的流,但我的aspx文件被下载。我的意思是脚本是在test.aspx上编写的,在运行该脚本后,空文件被下载,文件名是test.aspx

请与我的问题分享一些解决方案。

1 个答案:

答案 0 :(得分:1)

对于它为空的问题,你可能忘了倒回流;添加:

stream.Position = 0;

然后交出来。

对于名称问题:您需要使用content-disposition http标头为其提供更好的标头。 可能已在request.Download方法中作为可选参数提供。如果不是:只需自己添加http标头。例如from rfc2616

Content-Disposition: attachment; filename="fname.ext"