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

如上所述,您需要添加 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 回答
0

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()带有第三个参数的重载:

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 回答