2

我正在尝试使用fancybox来显示图像。我的图像是 mysql 数据库中的 blob。

这是我正在使用的 html/php:

<a class="fancybox-buttons" data-fancybox-group="g1" href="data:image/jpeg;base64,<?php echo base64_encode($pic['screenshot']); ?>"><img src="data:image/jpeg;base64,<?php echo base64_encode($pic['screenshot']); ?>" width="150px" height="250px"/></a>

这可行,但是当页面加载以及将鼠标移到图像上时,我遇到了这个奇怪的闪烁鬼图像问题。

4

3 回答 3

3

图片展示部分:

<a class="fancybox fancybox.iframe" href="blob:http://localhost:8080/a71e1fb6-8482-49cf-88fa-a29dfc71e39e">
    <img src="blob:http://localhost:8080/a71e1fb6-8482-49cf-88fa-a29dfc71e39e"/>
</a>

通过这种方式设置fancybox的文档类型(页面加载时):

jQuery(document).ready(function() {
    $(".fancybox").fancybox({type : 'image'});
}

成功来了。

当使用花式框pdf或其他文件类型(不是图像)时,我们设置其他适当的值。

于 2015-08-04T08:40:51.043 回答
1

我什至不知道你做了什么是可能的。我认为更好的方法是创建一个脚本来动态地为您的图像提供服务......

因此图像 src 将是“image.php?id=123”,然后您将拥有 image.php 服务脚本,即...

使用 PHP 脚本提供图像与直接加载图像

我对您的应用程序知之甚少,但将图像存储在数据库中是个好主意..似乎它们将使数据库快速变大。

于 2013-08-27T20:01:38.460 回答
0

我没有足够的积分来发表评论,所以我要把我的 2 美分放在这里。希望能帮助到你。

移动设备可能不完全支持 blob 存储。 https://developer.mozilla.org/en-US/docs/Web/API/Blob

因此图像 src 将是“image.php?id=123”,然后您将拥有 image.php 服务脚本,即...

这是一个非常好的主意,除了在我的情况下,我们使用带有 MVC/ADFS 身份验证模型的 Web API。Web API 是一种无状态的 Web 服务,因此该选项并不总是适用于任何地方。为了使其正常工作,我们必须允许匿名访问该 API 调用,这可能会带来安全风险,具体取决于数据。

于 2018-04-17T03:52:56.677 回答