У меня настроена функция, которая расшифровывает зашифрованные изображения AES в исходные файлы. Короче говоря, вы бы назвали это так: DecryptFile($pathtofile)
Это создаст файл в папке tmp/
с дешифрованным изображением и вернет путь, чтобы быть в состоянии вставить изображение через <img src="path">
, Мне просто нужно показать его при текущем выполнении скрипта и удалить его как можно скорее.
То, что я пытался сделать, это unlink("path")
для удаления файла в конце скрипта, но если я сделаю это, браузеру не хватит времени загрузить изображение, и все будет отображаться.
Я проверил, смогу ли я справиться с tmpfile()
функция, но кажется, что она подходит для временной обработки загрузки, так как я не могу придумать способ показать какое-либо изображение с <img>
используя эту функцию.
Есть идеи, ребята?
Одним из возможных решений было бы хранить данные изображения непосредственно в теге с URI данных. Но затем, если бы кто-то скопировал исходный код, у него, по сути, было бы изображение, аналогично, если бы что-то кэшировало содержимое вашей страницы … Опять же, я полагаю, это ничем не отличается от того, что «Сохранить изображение как» или выполнить полную загрузку страницы. Но это избавит вас от необходимости возиться с копией / 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; ?>" />
Других решений пока нет …