在浏览器中显示本地文件的缩略图(使用免费技术)

时间:2014-03-08 23:02:51

标签: browser local-storage file-access

我正在Postgresql中开发一个数据库,可以通过浏览器(php / javascript)在Firefox / Ubuntu中访问。它在客户端计算机本地运行,数据库也是本地的。某些表具有“链接”列,其中用户存储该记录的文件路径(报告,照片,地图甚至整个文件夹)。现在我要求客户端在Nautilus中复制资源并将其粘贴到选择的字段中。这将粘贴文件的完整路径,然后将其存储在数据库中。到目前为止,非常好。

我现在想要的是在用户要求查看该表上的内容时显示文件的缩略图。我知道javascript因安全原因无法访问用户磁盘的内容。 This site显示了如何在HTML5中执行类似操作,但它似乎没有文件的完整路径。在其他地方,我读过Flash可以做到(在其他地方,我读不到),但Flash不是免费的。任何免费技术使这项工作?提前谢谢。

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题。一种选择是服务器将图像从数据库中的路径流式传输到浏览器,例如,如果使用PHP,则看起来像:

    $size = getimagesize($fname);
    // Now that you know the mime type, include it in the header.
    header('Content-type: '.$size['mime']);
    // Read the image and send it directly to the output.
    readfile($fname);

在任何其他服务器端脚本语言中都有等效的方法。

具体来说,这是一个经过测试的示例代码。在服务器端:

<?php
$param = $_GET["image"];
$fname = "/Users/myuser/images/$param"; // replace with your path
$size = getimagesize($fname);
header('Content-type: '.$size['mime']);
readfile($fname);
?>

在客户端

<html>
<head></head>
<body>
<img src="http://127.0.0.1/img.php?image=test1.png" />
<img src="http://127.0.0.1/img.php?image=test2.png" />
</body>
</html>