可能重复:
How to extract a file extension in PHP?如何在PHP中获取文件扩展名?
我希望得到我的图片上传的文件扩展名,但我只是得到一个数组回来。
$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));
有没有办法让自己的扩展?
可能重复:
How to extract a file extension in PHP?如何在PHP中获取文件扩展名?
我希望得到我的图片上传的文件扩展名,但我只是得到一个数组回来。
$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));
有没有办法让自己的扩展?
无需使用字符串函数。您可以使用的东西,实际上是专门为你想要的东西:pathinfo()
:
$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
如何
$ext = array_pop($userfile_extn);
这是一个可爱的功能:P – Michelle 2012-04-28 22:58:50
我不建议这样做。从现在开始,你依赖于阵列的顺序。这是一个懒惰的解决方案,很可能会在将来导致问题。 – 2016-07-29 20:14:56
更好的方法是使用strrpos + SUBSTR(快于爆炸为):
$userfile_name = $_FILES['image']['name'];
$userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1);
但是,检查类型一个文件,使用mime_content_type是一个更好的办法: http://www.php.net/manual/en/function.mime-content-type.php
比'pathinfo()'更好吗?我不这么认为。 – ThiefMaster 2012-04-28 22:53:00
比爆炸更好;-)。但是,你说得对,pathinfo是启用时更好的方式(某些相互服务器禁用此功能...)。 – Julien 2012-04-28 22:56:05
**重要说明**:这将失败,路径如下:'/ var/www/website.com/somefile'。 – brianreavis 2013-11-27 21:31:54
你可以用这个尝试MIME类型
$image = getimagesize($_FILES['image']['tmp_name']);
$image['mime']
将返回mime类型。
该函数不需要GD库。你可以找到文档here。
这将返回图像的MIME类型。
有些人使用$_FILES["file"]["type"]
,但它不像浏览器给出的那样可靠,而不是PHP给出的。
您可以使用pathinfo()
作为ThiefMaster建议检索图像扩展名。
首先确保图像在开发过程中成功上传,然后再对图像执行任何操作。
这也能发挥作用:
$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
'只有变量应该通过引用传递',PHP手册 – dader 2012-12-20 02:01:44
这不是一个好方法,因为'end'函数用于将数组的内部指针移动到数组的末尾并返回那个元素。问题是数组是通过引用传递的,因为数组是动态生成的,所以不能通过引用传递,因此警告或失败,这取决于您的PHP版本。 – SteveK 2013-05-19 02:27:03
**重要说明**:这将失败,路径如下:'/ var/www/website.com/somefile'(最好使用pathinfo)。 – brianreavis 2013-11-27 21:30:59
$ path = $ _FILES ['image'] ['name'] [0];实际的文件名是在一个数组中。 pathinfo只会评估一个字符串。 – foureight84 2013-12-04 22:36:09
@ foureight84:只有这样,如果你有上传字段名为'图像[]'... – ThiefMaster 2013-12-04 23:42:23
我有点修改你的代码一点点,并做了一个函数,以防有人想使用一个函数。这里是代码:function getFileExtension($ path){$ {$ ext = pathinfo($ path,PATHINFO_EXTENSION); return $ ext; } – 2014-12-05 14:56:26