显示 PHP 的临时图像
Showing temporary images with PHP
我设置了一个函数,可以将 AES 加密的图像解密成其原始文件。长话短说,你可以这样称呼它:DecryptFile($pathtofile)
这将在文件夹 tmp/
上创建一个包含解密图像的文件,并将 return 路径,以便能够通过 <img src="path">
插入图像。我只需要在当前执行脚本时显示它,并尽快删除它。
我尝试做的是 unlink("path")
删除脚本末尾的文件,但如果我这样做,浏览器就没有足够的时间加载图像,任何东西都会出现。
我检查了我是否可以使用 tmpfile()
函数进行管理,但它似乎适合临时下载处理,因为我想不出用 [=16= 显示任何图像的方法] 使用这个函数。
大家有什么想法吗?
一种可能的解决方案是使用数据 URI 将图像数据直接存储在标记中。但是,如果有人要复制源代码,他们基本上就会拥有图像,同样,如果有东西缓存了您的页面内容……我想这与 "Save image as" 或进行整页下载没有什么不同。但这将使您不必弄乱 copy/mv/symlink/unlink.
<?php
$decrypted = DecryptFile($pathtofile);
$data = base64_encode(file_get_contents($decrypted));
$info = getimagesize($decrypted);
$image = sprintf('data:%s;base64,%s', $info['mime'], $data);
?>
<img src="<?php echo $image; ?>" />
我设置了一个函数,可以将 AES 加密的图像解密成其原始文件。长话短说,你可以这样称呼它:DecryptFile($pathtofile)
这将在文件夹 tmp/
上创建一个包含解密图像的文件,并将 return 路径,以便能够通过 <img src="path">
插入图像。我只需要在当前执行脚本时显示它,并尽快删除它。
我尝试做的是 unlink("path")
删除脚本末尾的文件,但如果我这样做,浏览器就没有足够的时间加载图像,任何东西都会出现。
我检查了我是否可以使用 tmpfile()
函数进行管理,但它似乎适合临时下载处理,因为我想不出用 [=16= 显示任何图像的方法] 使用这个函数。
大家有什么想法吗?
一种可能的解决方案是使用数据 URI 将图像数据直接存储在标记中。但是,如果有人要复制源代码,他们基本上就会拥有图像,同样,如果有东西缓存了您的页面内容……我想这与 "Save image as" 或进行整页下载没有什么不同。但这将使您不必弄乱 copy/mv/symlink/unlink.
<?php
$decrypted = DecryptFile($pathtofile);
$data = base64_encode(file_get_contents($decrypted));
$info = getimagesize($decrypted);
$image = sprintf('data:%s;base64,%s', $info['mime'], $data);
?>
<img src="<?php echo $image; ?>" />