0

给定一个图像文件路径,我想获取它的内容——而不是向该内容添加元数据(EXIF、IPTC、XMP 等),然后在 HTML 中显示该图像的内容,包括该元数据(可能是 base64 格式)标记而不保存文件

为什么不将文件保存在服务器上?我尝试执行的操作是针对用户出于版权目的将图像文件保存到他的计算机的情况 - 我希望将他的 IP 和我网站的 URL 存储在他下载的图像的元数据中。一分钟内将有成千上万的用户查看该图像,因此我无法在服务器上创建该图像的临时副本。

我可以生成 JPEG 或 PNG 格式的图像 - 使其工作所需的任何格式。

我目前知道如何使用 PHP 的“ iptcembed ”将 IPTC 元数据存储在 JPEG 图像中,但当然可以存储(保存)文件。

4

2 回答 2

0

我知道你说你不能创建临时文件,但是有一个你自己删除的手动临时文件和一个 PHP 管理的临时文件。

查看tmplfile(),它允许您将文件保存在服务器上,但一旦请求完成,它将被清除。

然后你可以做所有你需要的事情,然后将 tmpfile 的内容获取为 base64 并返回该内容。该文件将在之后消失,因此每个请求或多或少都发生在内存中。

于 2020-12-28T07:50:24.370 回答
0

我不知何故错过了iptcembed的第三个参数“ spool ”可以完成这项工作的事实:

假脱机标志。如果假脱机标志小于 2,则 JPEG 将作为字符串返回。否则 JPEG 将被打印到 STDOUT。

我尝试了各种选项,它对我有用。

于 2020-12-30T06:05:27.187 回答