Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net WebApi返回空白PDF文件_Asp.net_Pdf_Asp.net Web Api_Migradoc_Httpresponsemessage - Fatal编程技术网

Asp.net WebApi返回空白PDF文件

Asp.net WebApi返回空白PDF文件,asp.net,pdf,asp.net-web-api,migradoc,httpresponsemessage,Asp.net,Pdf,Asp.net Web Api,Migradoc,Httpresponsemessage,我使用MigraDoc生成PDF,它在本地机器上保存得很好,但当我将此文件流发送到webapi时,浏览器会以空白内容打开它 var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StreamContent(new MemoryStream(pdfByteArray)) }; response.Content

我使用MigraDoc生成PDF,它在本地机器上保存得很好,但当我将此文件流发送到webapi时,浏览器会以空白内容打开它

var response = new HttpResponseMessage(HttpStatusCode.OK)
               {
                   Content = new StreamContent(new MemoryStream(pdfByteArray))
               };
response.Content.Headers.ContentDisposition = 
              new ContentDispositionHeaderValue("attachment")
              {
                   FileName = "MyPdf.pdf"
              };
response.Content.Headers.ContentType = 
              new MediaTypeHeaderValue(@"application/pdf")
response.Content.Headers.ContentLength = pdfByteArray.Length;
return response;
当我在Chrome中打开developer tools时,我看到一些响应字符如下所示:

虽然当我尝试使用相同的字节流创建本地文件时:

using (Stream stream = File.Create(@"d:\work\Test.pdf"))
{
    new MemoryStream(pdfByteArray).CopyTo(stream);
}
它正确显示PDF的内容


我试图在响应内容类型中指定不同的字符集(如UTF-7、UTF-8、windows-1252等),并查看响应字符是否已更改,但结果是相同的-我看到空白PDF。另一个注意事项是,当我发送Json和用Base64编码的pdfByteArray时,在UI上我能够解码并创建正确的PDF。我正在试图找到一种方法来发送应用程序/pdf内容,并让浏览器正确呈现pdf。

pdfByteArray.Length
vs
letterStreamArray.Length
?@Nkosi抱歉输入错误,忘了在SOdid中更改它您尝试了不同的浏览器吗?@FalcoAlexander是的,我尝试了Chrome、IE和Safari-相同的结果。也许你知道一些IIS配置?@ShukhratRaimov任何时候浏览器都无法显示它,因为它获取的数据不正确。
pdfByteArray.Length
vs
letterStreamArray.Length
?@Nkosi抱歉,键入错误,忘记在SOdid中更改它了。你尝试了不同的浏览器吗?@FalcoAlexander是的,我在尝试Chrome,IE和Safari-相同的结果。可能您知道某些IIS配置?@ShukhratRaimov任何时候浏览器都无法显示它,因为它获取的数据不正确。