根据Laravel的文档,您可以使用extension()
类中的UploadedFile
方法获得文件扩展名,但是它的准确性如何?
摘自文档:
扩展名方法将尝试猜测基于文件的扩展名 在其内容上。此扩展名可能与扩展名不同 由客户提供的:
所以,据我了解,该方法并非100%准确,但是为什么呢?有人可以解释一下。
答案 0 :(得分:3)
您不能总是依靠文件的扩展名。我可以拍摄任何图像文件,并将扩展名更改为.docx
。但是,尝试找到文件的原始扩展名并不是那么容易。
大多数文件都有一个描述类型的标头,我认为这就是这里所使用的。但并非所有文件都具有此功能。因此,无法确定任何文件的类型。
更新:Laravel使用Symfony的guessExtension
方法执行此操作。此方法基于文件的mime类型(并非总是存在)起作用。当找不到MIME类型时,Symfony会根据文件的元数据来猜测MIME类型。