495

アップロードしている画像のファイル拡張子を取得したいのですが、配列を取得するだけです。

$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));

拡張機能自体を取得する方法はありますか?

4

5 に答える 5

1292

文字列関数を使用する必要はありません。あなたが望むもののために実際に設計されたものを使うことができます: pathinfo():

$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
于 2012-04-28T22:48:44.817 に答える
65

これも同様に機能します:

$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
于 2012-08-22T20:26:17.567 に答える
34

より良い方法は、 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

于 2012-04-28T22:52:03.110 に答える
24

これでMIMEタイプを試すことができます

$image = getimagesize($_FILES['image']['tmp_name']);

$image['mime']MIME タイプを返します。

この関数は GD ライブラリを必要としません。ドキュメントはこちらにあります

これは、画像の MIME タイプを返します。

を使用する人もいます$_FILES["file"]["type"]が、PHP ではなくブラウザーによって提供されているため、信頼できません。

pathinfo()ThiefMaster が提案したように、画像拡張子を取得するために使用できます。

イメージを操作する前に、開発中にイメージが正常にアップロードされていることを確認してください。

于 2012-04-28T23:06:00.547 に答える
12

どうですか

$ext = array_pop($userfile_extn);
于 2012-04-28T22:48:33.717 に答える