在 php 脚本中显示图像



我有一些名称中没有扩展名的图像。现在,当我想打开它们时,一些浏览器无法将数据检测为图像并显示二进制文本。

正确的脚本 (php) 是什么,它将获取此类图像的地址,检测其格式并使用图像输出设置正确的标头?

您可以使用

exif_imagetype函数正确检测它是什么类型的图像,然后使用image_type_to_mime_type函数来获取所需的MIME类型:

header("Content-type: " . image_type_to_mime_type(exif_imagetype("image.jpg")));

不过,您需要内置的exif支持。我推荐这样做,因为它实际上检查了文件的签名,而不是盲目地假设基于扩展名的 mime 类型。但是,如果这不是一个选项,则必须像其他人提到的那样回退到 fileinfo。

你应该检查 fileinfo()http://www.php.net/manual/en/function.finfo-file.phpFileinfo 检测文件类型,您可以根据该文件类型设置标头。

你可以

使用这个:

<?php $filename = 'http://static.php.net/www.php.net/images/php.gif'; $file = fopen($filename, 'rb'); $size = getimagesize($file); switch ($size['mime']) { case "IMAGETYPE_GIF": echo "<strong class="highlight">Image</strong> is a gif"; break; case "IMAGETYPE_JPEG": echo "<strong class="highlight">Image</strong> is a jpeg"; break; case "IMAGETYPE_PNG": echo "<strong class="highlight">Image</strong> is a png"; break; } ?>

您可以使用

finfo_file()来确定相关文件的MIME类型,然后发送包含该信息的内容类型标头。

相关内容

  • 没有找到相关文章

最新更新