Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “Laravel”的准确度如何;“扩展”;方法是什么?_Php_Laravel - Fatal编程技术网

Php “Laravel”的准确度如何;“扩展”;方法是什么?

Php “Laravel”的准确度如何;“扩展”;方法是什么?,php,laravel,Php,Laravel,根据Laravel的文档,您可以使用UploadedFile类中的extension()方法获得文件扩展名,但它的准确度如何 从文件: 扩展名方法将尝试根据扩展名猜测文件的扩展名 关于它的内容。此扩展可能与扩展不同 由客户提供的: 因此,据我所知,该方法并非100%准确,但为什么呢?请有人解释一下。您不能总是依赖文件的扩展名。我可以拍摄任何图像文件,并将扩展名更改为.docx。但是试图找到文件的原始扩展名并不是那么容易 大多数文件都有一个描述类型的头文件,我想这就是这里使用的。但并不是所有的文件

根据Laravel的文档,您可以使用
UploadedFile
类中的
extension()
方法获得文件扩展名,但它的准确度如何

从文件:

扩展名方法将尝试根据扩展名猜测文件的扩展名 关于它的内容。此扩展可能与扩展不同 由客户提供的:


因此,据我所知,该方法并非100%准确,但为什么呢?请有人解释一下。

您不能总是依赖文件的扩展名。我可以拍摄任何图像文件,并将扩展名更改为
.docx
。但是试图找到文件的原始扩展名并不是那么容易

大多数文件都有一个描述类型的头文件,我想这就是这里使用的。但并不是所有的文件都有这个。因此,无法确定任何文件的类型


更新:Laravel使用Symfony提供的方法进行更新。此方法基于文件的mime类型工作,该类型并不总是存在。当找不到mime类型时,Symfony会根据文件的元数据猜测mime类型