gpt4 book ai didi

asp.net - 如何在HttpResponse中发送文件?

转载 作者:行者123 更新时间:2023-12-04 04:23:04 25 4
gpt4 key购买 nike

在我的应用程序中,用户可以单击链接后下载文件。文档是用代码生成的PDF/RTF。我用:

byte[] downloadBytes = some pdf document bytes...
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Type", "binary/octet-stream");
response.AddHeader("Content-Disposition",
"attachment; filename=filename.pdf; size=" + downloadBytes.Length.ToString());
response.Flush();
response.BinaryWrite(downloadBytes);
response.Flush();
response.End();

可以,但是通常这是个好方法吗?为什么冲洗被称为两次?我发现了许多不同的示例,并且这个示例工作正常,但有时会出现 The remote host closed the connection. The error code is 0x80070057错误。我找到了我应该使用的解决方案
if (Response.IsClientConnected)
{
Response.Flush();
Response.End();
}

整个代码看起来如何?

最佳答案

这是我使用的代码。它根本不调用冲洗。我不确定这是否正确,但是对我有用。

public static void ResponseOpenFileBytes(byte[] File, string ContentType, string SaveAsFileName, HttpResponse response)
{
if (string.IsNullOrEmpty(ContentType))
{
ContentType = "application/octet-stream";
}

response.Clear();
response.AddHeader("content-disposition", "attachment;filename=" + SaveAsFileName);
response.ContentType = ContentType;
response.BinaryWrite(File);
response.End();
}

关于asp.net - 如何在HttpResponse中发送文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com