我有一个非常简单的PHP脚本,它创建了“favicon.ico”形式的jpg / gif / png上传文件。
这是功能的一部分:
$file = 'cache/'.$e .'/'. basename($_FILES['uploadfile']['name']);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
$im = imagecreatefromjpeg($file);
list($width, $height) = getimagesize($file);
$image_p = imagecreatetruecolor("16", "16");
imagecopyresampled($image_p, $im, 0, 0, 0, 0, "16", "16", $width, $height);
$num = rand (1,99999);
$output = $num."-favicon.ico";
imagepng($image_p,'dl/'.$output);
imagedestroy ($im);
unlink ($file);
echo 'success';
}
脚本工作正常!在Chrome中,Opera和Firefox生成的favicon显示效果很好,应该这样做。
但是在Interent Explorer 8中 - 它根本就没有显示出来。
感谢您的帮助!
答案 0 :(得分:2)
你不能只将它保存为带有ico扩展名的PNG ......我猜测Chrome / Opera / Firefox无法读取文件,因此他们决定打开文件并找出实际内容格式不是依赖于文件扩展名,而IE则不是。
但是,你需要找到一个不同的解决方案来保存它作为ICO,因为GD不能自己做,你可以尝试ImageMagick或快速谷歌phpThumb似乎能够做(没试过)。