2011-03-25 92 views

回答

86
$name = $_FILES["file"]["name"]; 
$ext = end((explode(".", $name))); # extra() to prevent notice 

echo $ext; 
+0

这很简单。谢谢:) – yanike 2011-07-25 22:56:35

+0

请务必记住,文件扩展名只是对真实内容的暗示。它可以是完全不同的内容。 – user1610743 2014-04-06 21:27:58

+2

@ user1610743一般来说,不信任任何用户内容。显然,你可以检查文件头并确保它与扩展名匹配。例如图像(JPEG,PNG等)。 – 2014-04-06 21:52:09

1

是的,您可以使用$_FILES['file']['name']来获取上传文件的原始名称。请记住,扩展名可能并不总是代表文件的真实内容。

+0

据我所知,我们可以找到'姓名',但我想知道如果我们能找到只使用tmp_name。 – Peter 2011-03-25 00:30:30

+1

@Peter,'tmp_name'是PHP生成的随机文件名。您只能通过查看实际的原始名称来完成此操作。 – Charles 2011-03-25 00:58:22

0

是的,假设它是准确命名的。它将保留原来的名称和扩展名。

67

你可以使用pathinfo()

$path_parts = pathinfo($_FILES["file"]["name"]); 
$extension = $path_parts['extension']; 
+0

您刚刚保存了我的时间,谢谢 – Elyor 2015-10-14 14:21:37

+8

短版本 - pathinfo($ filename,PATHINFO_EXTENSION); – fsasvari 2016-01-13 10:30:20

+0

真的有用的答案!投票给你。谢谢。 – Miron 2016-01-28 10:15:37