【问题标题】:How to show previews of selected documents如何显示所选文档的预览
【发布时间】:2014-06-23 09:14:30
【问题描述】:

如何显示文档的预览。 readasDataUrl 是否也适用于预览 .pdf、.xls 文件?

var reader = new FileReader();
    reader.readAsDataURL($files[i]);
    reader.onload = function (loadEvent) {
    $scope.$apply(function () {
       $scope.dataUrlss = loadEvent.target.result;
    });
};

var doc = document.getElementById('FileFrame').contentWindow.document;
doc.open();
doc.write($scope.dataUrlss);
doc.close();

我的 iframe 标记是

 <iframe id="FileFrame" src="about:blank" style="height: 900px; width: 700px;"></iframe>

该解决方案对我不起作用。请帮助我。在此先感谢...

【问题讨论】:

  • 我很确定你必须将 iframe 数据的类型设置为 PDF,如果这是你想要的。如果你能做一个小的 jsfiddle,我可以看看我能不能解决问题。

标签: angularjs file iframe filereader preview


【解决方案1】:

这可行(fiddle):

var reader = new FileReader();

reader.addEventListener("load", function (event) {

    var div = document.createElement("div");
    div.innerHTML
        = '<object data="' 
        + reader.result 
        + '" type="'+file.type+'">' 
        + '<embed src="' 
        + reader.result 
        + '" type="'+file.type+'" />' 
        + '</object>';
        output.insertBefore(div, null);

});

//Read the file
reader.readAsDataURL(file);

部分代码,请参阅小提琴以获取完整内容。我没有把它放在 angular 或 iframe 中,但问题不在于这两种技术,而在于它的插入方式。这可以很容易地修改为与两者一起使用。某些文档类型(如 xls 或 xlsx)可能需要额外的工作,或者可能根本无法嵌入。

【讨论】:

  • 感谢您的回答,它是 pdf 文件的工作文件,但是当我处理 xls 或 xlsx 文件时,它显示的一些插件丢失了
  • xls/x 更难嵌入。它可能需要安装 MS Office Web Components 或类似的东西。您也可以将其转换为 google 文档并显示,但存在兼容性问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多