我需要预览存储在数据库中的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
格式。
答案 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输出