3

これは私のアクションです:

public FileResult ShowFile(long Id) {

    DAL.Files.File file = new DAL.Files.FileAccess().GetById(Id);
    return File(file.Content, file.FileType);
}

GetByIdメソッドは SQL DB からファイルを返します。ファイルの種類がテキストまたは画像の場合、すべて問題なく正しく表示されますが、Unicode を示す PDF のようにファイルの種類が異なる場合、PDF ファイルを正しく表示するにはどうすればよいですか。ユーザーはそれをダウンロードしますか?

4

2 に答える 2

0

メソッドの 2 番目の引数File()は MIME タイプである必要があります。あなたのファイルがPDFだとすると、これを行うとうまくいくはずです:

public FileResult ShowFile(long Id) {

    DAL.Files.File file = new DAL.Files.FileAccess().GetById(Id);
    // assuming file is a PDF
    return File(file.Content, "application/pdf");
}

代わりにダウンロードを強制するにFile()は、3 番目の引数を取るオーバーロードを使用します。

public FileResult ShowFile(long Id) {

    DAL.Files.File file = new DAL.Files.FileAccess().GetById(Id);
    // assuming file is a PDF
    return File(file.Content, "application/pdf", "some-pdf-file.pdf");
}
于 2012-05-19T22:39:24.557 に答える
0

上記のように、appklication/pdf を追加する必要がありますが、ヘッダーも正しくする必要がありました。

    public FileResult ShowFile(long Id)
    {

        DAL.Files.File file = new DAL.Files.FileAccess().GetById(Id);
        // assuming file is a PDF
        Response.AppendHeader("Content-Disposition", "inline; filename=CustomInvoice.pdf");
        return File(file.Content, "application/pdf", "some-pdf-file.pdf");
    }
于 2012-06-18T13:50:22.340 に答える