как открыть файл содержимого без подсказки в любом браузере - PullRequest
1 голос
/ 27 июля 2011

У меня filecontentresult от метода действия контроллера, как показано, содержимое байта [] тип

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

Теперь, если тип файла известен как pdf и указан, почему он не открывается напрямую в Adobe Reader и не вызывает окно для открытия с / saveas. Если мой filecontentresult проходит pdf, я хочу, чтобы он открывался без окна propmt. как это можно сделать? Также приведенный выше код только подсказывает окно в Mozilla, в IE нет приглашения или открытия.

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Хитрость заключается в типе контента, вы его задали.Если браузер знает, как обрабатывать этот тип контента, он откроет его:

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

        return File(contents, "application/pdf");
    }
0 голосов
/ 20 июня 2013

Ответ в одну строку.

вернуть новый 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;
    }
...