Blueimp Gallery pdf支持

时间:2016-09-04 14:12:48

标签: jquery pdf image-gallery blueimp

我使用blueimp gallery展示了一些客户上传的图片

偶尔他们也会上传pdf文件,目前我们必须手动打开,同时非常适合在blueimp gallery中预览pdf。

从文档中我看到可以轻松地"添加对其他内容类型的支持:

https://github.com/blueimp/Gallery#example-html-text-factory-implementation

想象力很少......我试过了:

css:

.blueimp-gallery > .slides > .slide > .pdf-content {
    overflow: auto;
    margin: 60px auto;
    padding: 0 60px;
    max-width: 1200px;
    text-align: left;
    color:white;
}

js:

blueimp.Gallery.prototype.applicationFactory = function (obj, callback) {
    var $element = $('<div>')
            .addClass('pdf-content')
            .attr('title', obj.title);
    $.get(obj.href)
        .done(function (result) {
            $element.html(result);
            callback({
                type: 'load',
                target: $element[0]
            });
        })
        .fail(function () {
            callback({
                type: 'error',
                target: $element[0]
            });
        });
    return $element[0];
};

    $('#blueimpGallery-button').on('click', function (event) {
        blueimp.Gallery([
            {
                title: 'Test pdf_1',
                href: '/docs/test1.pdf',
                type: 'application/pdf'
            },
            {
                title: 'Test pdf_2',
                href: '/docs/test2.pdf',
                type: 'application/x-pdf'
            },
            {
                title: 'Test pdf_3',
                href: '/docs/test3.pdf',
                type: 'application/x-pdf'
            }

        ]);
    })

而且意外地......它运行,但是pdf无法识别并显示源代码 像这样: screenshot 我可以想象,至少,这是一个mime类型的问题,但我不知道如何解决它

可以建议方向吗? 感谢

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,这是一个可行的&#34;解。我正在使用ASP.Net MVC。

我检测到文件扩展名并显示静态pdf图标图像,并且在锚标记中我添加了自定义onclick事件以在新窗口中打开pdf文件。 但请确保您的pdf使用适当的标题呈现(即&#34; application / pdf&#34;)

<span>
@{
bool IsPDF = item.FileName.ToLower().EndsWith(".pdf");
    string resURL = Url.Action("GetFile", "MyController") + "?" + item.CodeStr;
    string imgURL = !IsPDF ? resURL : Url.Content("~/Content/Images/pdf.png");
    string target = !IsPDF ? "" : " onClick=\"window.open('" + resURL + "', '_blank')\""; // SO : 13335954
 }

<a href="@resURL" @Html.Raw(target) title="@item.FileName @item.FileTypeTitle">
    <img src="@imgURL" width="150px" alt="@item.Comment" />
</a>
</span>

代码特定于我的应用程序,上面是Razor语法(希望不难推断)。 让我知道是否有人有更好的解决方案