11

byte[]PDF を含むを受け取りました。

ブラウザbyte[]で PDFを取得して表示する必要があります。私はこのような同様の質問を見つけました - How to return PDF to browser in MVC? . しかし、それはPDFビューアでPDFを開きます。また、「サポートされていないファイルタイプであるか、ファイルが破損しているため、ファイルを開くことができませんでした」というエラーが表示されます。

ブラウザーで PDF を開くにはどうすればよいですか? これまでの私のコードは次のようになります -

    public ActionResult DisplayPDF()
    {
        byte[] byteArray = GetPdfFromDB();
        Stream stream = new MemoryStream(byteArray);
        stream.Flush(); 
        stream.Position = 0; 

        return File(stream, "application/pdf", "Labels.pdf");
    }
4

2 に答える 2

12

MemoryStreamの代わりにStreamとのFileStreamResult代わりに使用するだけで、バイト配列 PDF をブラウザーに直接表示できますFile

public ActionResult DisplayPDF()
{
    byte[] byteArray = GetPdfFromDB();
    using( MemoryStream pdfStream = new MemoryStream())
    {
        pdfStream.Write(byteArray , 0,byteArray .Length);
        pdfStream.Position = 0;
        return new FileStreamResult(pdfStream, "application/pdf");
    }
}
于 2016-03-29T16:11:10.380 に答える