2

示されているように、コントローラーアクションメソッドからのfilecontentresultがあります。contentsはbyte[]タイプです。

FileContentResult file= new FileContentResult(contents, "/PDF");
              Response.AppendHeader("Content-Disposition", "inline; filename=" + filename);
                return file;

さて、ファイルタイプがpdfとして知られていて指定されている場合、なぜadobeリーダーで直接開いてウィンドウを/saveasで開くように促さないのですか。filecontentresultがpdfに合格した場合、ウィンドウプロパティなしで開くようにします。どのようにそれを行うことができますか?また、上記のコードは、Mozillaでウィンドウを表示するだけで、IEでは表示または開くことはありません。

4

2 に答える 2

1

秘訣はコンテンツ タイプにあります。ブラウザーがそのコンテンツ タイプの処理方法を認識している場合、ブラウザーはそれを開きます。

    public ActionResult GetPDF()
    {
        var path = @"C:\Test\Testing.pdf";
        var contents = System.IO.File.ReadAllBytes(path);

        return File(contents, "application/pdf");
    }
于 2011-07-27T10:59:12.143 に答える
0

答えは一行で。

新しい FileContentResult(documentModel.DocumentData, documentModel.DocumentMediaType) を返します。

ここでコンテキストに入れると、DocumentSave...

    private bool SaveDocument(DwellingDocumentModel doc, HttpPostedFileBase files)
    {
        if (Request.Files[0] != null)
        {
            byte[] fileData = new byte[Request.Files[0].InputStream.Length];
            Request.Files[0].InputStream.Read(fileData, 0, Convert.ToInt32(Request.Files[0].InputStream.Length));

            doc.DocumentData = fileData;
            doc.DocumentMediaType = Request.Files[0].ContentType;
        }

        if (doc.Save())
        {
            return true;
        }

        return false;
    }
于 2013-06-20T05:00:13.177 に答える