如何在MVC Web应用程序中的Internet Explorer中预览PDF文件

时间:2017-12-07 07:43:03

标签: javascript asp.net-mvc

我需要预览存储在数据库中的PDF文件。在Chrome其工作正常,但当我在IE中执行时,它会被下载。原因可能是由于以下代码:

Javascript方法:

if (navigator.appVersion.toString().indexOf('.NET') > 0) {
    console.log(response._body);
    window.navigator.msSaveBlob(response._body, obj.documentName);
}

控制器方法:

[HttpGet]  
public FileResult DownLoadFile(int id)  
{  
    List<FileDetailsModel> ObjFiles = GetFileList();  
    var FileById = (from FC in ObjFiles  
                    where FC.Id.Equals(id)  
                    select new { FC.FileName, FC.FileContent }).ToList().FirstOrDefault();  
     return File(FileById.FileContent, "application/pdf", FileById.FileName);  
}  

因此,我们可以通过这种方式预览PDF文件,因为数据库中的所有文件都是PDF格式。

3 个答案:

答案 0 :(得分:0)

一个解决方案(肯定不是最好的,因为不推荐使用iframe)会使一个中间页框成占据100%的父页面,如:

<html>
    <body>
        <iframe src="@Url.Action("DownLoadFile", new {id = 1})" width="100%" height="100%" />
    </body>
</html>

答案 1 :(得分:0)

我在这里检查浏览器的代码片段。我认为您可以使用它的一部分来解决您的问题。通过javascript提供的跨浏览器文件有时是PITA。

使用GGO的iframe建议,但要生成网址,请使用此代码:

var fileURL = URL.createObjectURL(file);

答案 2 :(得分:0)

我得到了解决方案。我使用aspose中的SaveOptions在html版本中转换了word,excel和pdf文档,然后可以在IE中以div或新窗口轻松呈现html输出

相关问题