首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在上传到chrome之前显示一个pdf的预览

在上传到chrome之前显示一个pdf的预览
EN

Stack Overflow用户
提问于 2017-02-24 21:59:24
回答 1查看 4.4K关注 0票数 1

我想在上传前显示一个pdf预览。它可以在火狐上运行,但不能在chrome上运行。如果我尝试处理一个图像,它在两个图像上都有效。

下面是我的代码:

代码语言:javascript
复制
<input required="required" accept="image/*, application/pdf" class="uploadjs" data-id="3" type="file">

<div class="preview">
  <img id="preview-3" alt="">
  <embed id="preview-3_1" type="application/pdf">
</div>


function readURL(input, id) 
{
    var mime= input.files[0].type;

    if (input.files && input.files[0]) 
    {
        var reader = new FileReader();

        reader.onload = function (e) 
        {
            if(mime.split("/")[0]=="image")
            {
                $('#preview-'+id+'_1').attr('src', '');
                $('#preview-'+id).attr('src', e.target.result);

            }
            else
            {
                $('#preview-'+id).attr('src', '');
                $('#preview-'+id+'_1').attr('src', e.target.result);
            }
        }

        reader.readAsDataURL(input.files[0]);
    }
}

$(function()
{
    $(".uploadjs").change(function()
    {
        var id = $(this).data('id')
        readURL(this, id);
    });
})

和一个jsfiddle:https://jsfiddle.net/g9ttqxyj/2/

我尝试过多种方法,比如: embed、iframe和object,但都不适用于chrome。

EN

回答 1

Stack Overflow用户

发布于 2018-05-18 22:06:11

对于任何偶然发现这一点的人:用object标记封装您的embed标记。object标记的数据属性必须链接到.pdf。将html更改为:

代码语言:javascript
复制
<object type="application/pdf" data ="#" id="pdfViewer">
    <embed id="preview-3_1" type="application/pdf">
</object>

将此代码添加到jquery中:

代码语言:javascript
复制
$('#pdfViewer').attr('data',  e.target.result);

https://stackoverflow.com/a/23681394

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42440534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档