php - 确定文件是否为 PHP 图像的最佳方法是什么?

标签 php image file-upload

我有一个服务器,人们可以向其上传文件。问题是一些文件名被破坏了(没有任何扩展名)所以我不能立即确定文件类型。这个问题分为两部分:对于确实有文件名的文件,确定它是否是图像的最佳方法是什么? (只是一个很长的if/else if列表?)其次,对于没有扩展名的文件,我如何确定它们是否是图像?

最佳答案

您可以使用 exif_imagetype()

<?php
    $type =exif_imagetype($image);

$type 是一个值

  1. IMAGETYPE_GIF
  2. IMAGETYPE_JPEG
  3. IMAGETYPE_PNG
  4. IMAGETYPE_SWF
  5. IMAGETYPE_PSD
  6. IMAGETYPE_BMP
  7. IMAGETYPE_TIFF_II(英特尔字节顺序)
  8. IMAGETYPE_TIFF_MM(摩托罗拉字节顺序)
  9. IMAGETYPE_JPC
  10. IMAGETYPE_JP2
  11. IMAGETYPE_JPX
  12. IMAGETYPE_JB2
  13. IMAGETYPE_SWC
  14. IMAGETYPE_IFF
  15. IMAGETYPE_WBMP
  16. IMAGETYPE_XBM
  17. IMAGETYPE_ICO

来自手册:

当找到正确的签名时,将返回适当的常量值,否则返回值为 FALSE。返回值与 getimagesize() 在索引 2 中返回的值相同,但 exif_imagetype() 更快。​​

关于php - 确定文件是否为 PHP 图像的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618580/

相关文章:

php - 如何在 codeigniter 日历的每个单元格中插入复选框

javascript - JS+CSS 如何从右上到左下显示数组中的图片

ruby-on-rails - 使用 RubyOnRails 上传 HTML5 FormData 文件

linux - 将文件从 My_Pc 上传到远程 Linux 服务器而不是 ftp Vb.Net

jquery - 意见什么是避免重叠内容的更好解决方案(多上传)

php - mysql数据存在代码不起作用

php - 如何避免使用表单进行多次 SQL 更新?

css - 根据div高度调整img高度

php - Laravel - 删除方法不存在

jquery - 重型 AJAX 应用程序中的 Firefox 特定内存增加