我希望获取我正在上传的图片的文件扩展名,但我只收到了一个数组。
$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));
有没有一种方法只获取文件扩展名?我希望获取我正在上传的图片的文件扩展名,但我只收到了一个数组。
$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));
有没有一种方法只获取文件扩展名?不需要使用字符串函数。您可以使用实际设计用于您想要的内容的东西:pathinfo()
:
$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
这也可以正常工作:
$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
end
函数旨在将数组的内部指针移动到数组的末尾并返回该元素。问题在于数组是通过引用传递的,而由于您的数组是动态生成的,因此无法通过引用传递,因此会出现警告或失败,具体取决于您的PHP版本。 - SteveK/var/www/website.com/somefile
这样的路径,此方法将失败(您最好使用 pathinfo)。 - brianreavis$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()
更好吗?我不这么认为。 - ThiefMastermime_content_type
在当前的PHP版本中已被弃用。 - Parag Tyagi你可以尝试使用这个mime类型
$image = getimagesize($_FILES['image']['tmp_name']);
$image['mime']
返回图片的 MIME 类型。
该函数不需要 GD 库。您可以在这里找到文档。
此函数返回图像的 MIME 类型。
有些人使用$_FILES["file"]["type"]
,但它不可靠,因为它由浏览器而不是 PHP 给出。
您可以像 ThiefMaster 建议的那样使用 pathinfo()
来检索图像扩展名。
在对该图像进行任何操作之前,请确保在开发过程中成功上传了图像。
怎么样?
$ext = array_pop($userfile_extn);
image[]
时,才是这种情况。 - ThiefMaster