2011-03-25 74 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