如何验证上传的文件是否为图像? [通过HTML5的File API发送的文件,通过php:// input接收]

时间:2011-04-23 23:53:44

标签: php ajax upload

我正在使用HTML5的文件API(tutorial here),我需要验证文件是否是图像。主要问题是,通过正常上传,我可以调用getimagesize()并作为参数,即临时文件的路径 - 然后决定是否将其存储在服务器上。

但是,使用文件上传API,文件将以php://input接收,并返回传输的实际位。

在这种情况下验证的最佳方法是什么?我是否必须将这些位存储到一个物理位置,然后验证它并在之后删除它或者它是一种更好的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

如果是图像,你会将它存储在磁盘上吗?如果是,那么我会说最好的方法是创建一个临时文件,写入数据,然后检查它是否是带有常规函数的图像,如果它将临时文件移动到最终目标,否则只需将其删除

如果由于某种原因您不想这样做,您可以检查传入数据中的magic numbershere is a more complete list)。但请记住,这比通常的解决方案更容易失败。