1

我有一个非常简单的 PHP 脚本,它以 jpg/gif/png 上传文件的形式创建“favicon.ico”。

这是函数的一部分:

$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 中 - 它根本不显示。

感谢您的任何帮助!

4

1 回答 1

2

您不能将其保存为带有 ico 扩展名的 PNG……我猜 Chrome/Opera/Firefox 无法读取该文件,因此他们决定打开该文件并找出实际格式是什么而不是取决于文件扩展名,而 IE 则没有。

但是,您需要找到一种不同的解决方案将其保存为 ICO,因为 GD 无法自行执行此操作,您可以尝试 ImageMagick 或在快速的 Google phpThumb似乎能够做到(未尝试)之后。

于 2011-09-04T04:42:15.067 回答