我希望获得我正在上传的图像的文件扩展名,但我只是得到一个数组回来。
$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));
有没有办法只获得扩展号本身?
我希望获得我正在上传的图像的文件扩展名,但我只是得到一个数组回来。
$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));
有没有办法只获得扩展号本身?
当前回答
您可以尝试使用此mime类型
$image = getimagesize($_FILES['image']['tmp_name']);
$image['mime']将返回mime类型。
这个函数不需要GD库。您可以在这里找到文档。
这将返回图像的mime类型。
有些人使用$_FILES["file"]["type"],但它不可靠,因为它是由浏览器提供的,而不是由PHP提供的。
您可以像ThiefMaster建议的那样使用pathinfo()来检索图像扩展。
在对图像执行任何操作之前,首先要确保在开发过程中成功上传了图像。
其他回答
这也可以:
$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
如何
$ext = array_pop($userfile_extn);
不需要使用字符串函数。你可以使用一些实际为你想要的东西:pathinfo():
$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
一个更好的方法是使用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
您可以尝试使用此mime类型
$image = getimagesize($_FILES['image']['tmp_name']);
$image['mime']将返回mime类型。
这个函数不需要GD库。您可以在这里找到文档。
这将返回图像的mime类型。
有些人使用$_FILES["file"]["type"],但它不可靠,因为它是由浏览器提供的,而不是由PHP提供的。
您可以像ThiefMaster建议的那样使用pathinfo()来检索图像扩展。
在对图像执行任何操作之前,首先要确保在开发过程中成功上传了图像。