gpt4 book ai didi

c# - httpHandler Content-Length 太短?

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:09 26 4
gpt4 key购买 nike

我正在尝试通过 httpHandler 下载 PDF 文件,但出于某种原因,我的 httpHandler 返回的内容长度大小不正确?

如果我把这段代码放到一个普通的 aspx 页面中,它就可以工作,所以我只能猜测 httpHandlers 有什么不同?

代码如下(在 c# 和 vb.net 中),我返回一个额外的 my-length header 以查看我的 lData 数组的长度

当我在 chrome 中执行此操作时,内容长度属性为 842710,但我的长度为 845942

为什么不同?我什至尝试过手动设置内容长度,但这没有任何作用......

非常感谢任何帮助

C#

byte[] lData = Document.GetData();

context.Response.Clear();
context.Response.ClearContent();
context.Response.ClearHeaders();

' headers for response
context.Response.AddHeader("My-Length", lData.Length);
context.Response.AddHeader("Content-Type", "application/pdf");
context.Response.AddHeader("Content-Disposition", "attachment; filename="""MyFile.PDF"""");

context.Response.OutputStream.Write(lData, 0, lData.Length);
context.Response.End();

VB.NET

Dim lData() As Byte = lDocument.GetData()

context.Response.Clear()
context.Response.ClearContent()
context.Response.ClearHeaders()

' headers for response
context.Response.AddHeader("My-Length", lData.Length)
context.Response.AddHeader("Content-Type", "application/pdf")
context.Response.AddHeader("Content-Disposition", "attachment; filename="""MyFile.PDF"""")

context.Response.OutputStream.Write(lData, 0, lData.Length)
context.Response.End()

最佳答案

尝试在 Response.End 之前放置一个 Response.Flush。流有时可能很古怪。

context.Response.OutputStream.Write(lData, 0, lData.Length);
context.Response.Flush();
context.Response.End();

关于c# - httpHandler Content-Length 太短?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24935803/

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