我正在使用HTML5的文件API(tutorial here),我需要验证文件是否是图像。主要问题是,通过正常上传,我可以调用getimagesize()
并作为参数,即临时文件的路径 - 然后决定是否将其存储在服务器上。
但是,使用文件上传API,文件将以php://input
接收,并返回传输的实际位。
在这种情况下验证的最佳方法是什么?我是否必须将这些位存储到一个物理位置,然后验证它并在之后删除它或者它是一种更好的方法吗?
感谢。
答案 0 :(得分:1)
如果是图像,你会将它存储在磁盘上吗?如果是,那么我会说最好的方法是创建一个临时文件,写入数据,然后检查它是否是带有常规函数的图像,如果它将临时文件移动到最终目标,否则只需将其删除
如果由于某种原因您不想这样做,您可以检查传入数据中的magic numbers(here is a more complete list)。但请记住,这比通常的解决方案更容易失败。