我希望能够在用户保存图像时生成不同的图像(带水印)。
我知道:
因此,如果浏览器从src =“”查询服务器,则会发送良好的内容类型。如果broswer继续图像url它会发送text / html,application / html + xml等...
如果用户执行“另存为”命令,任何人都知道如何使水印发生?
由于
答案 0 :(得分:0)
上面提到的最优雅的解决方案是在图像上创建一个不太高(并且将隐藏水印)的框,之前已经生成了(当上传图片时)。
这样,CSS会隐藏图片下方的白框,当有人使用“另存为”时,框就在那里。服务器上没有使用任何资源。
这是基于我开发的浏览器标题的解决方案。不要使用“另存为”,但可以直接访问图片和src =“”
<?php
#...
# Require PHP to work as a module in apache
$SentHeaders = apache_request_headers();
#$Watermark = strpos($SentHeaders['Accept'], 'text');
$Watermark = preg_match_all('/text/', $SentHeaders['Accept'], $matches);
# Set the header
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
# HHeader required
($Image->ContentType) ? header('Content-Type: '.$Image->ContentType) : header('Location: /404');
# Accès direct / save as
if($Watermark){
# Direct Image Access
#...
} else {
# Image included in src=""
#...
}
#...
?>