2016-07-25 4 views
0

アップロードファイルを確認したいライブサーバにアプリケーションがありますか画像ではありません。私のlocalhostと他のライブサーバーでは、現在のサーバーを除いて、以下の機能が動作しています。PHPのライブサーバでファイルタイプ機能がサポートされていません

1. mime_content_type($file); 
2. $file_type = exec("file $file"); 
3. $finfo = new finfo(FILEINFO_MIME); 
    $file_type = $finfo->file($_FILES['image']['tmp_name']); 

セキュリティ上の理由から無効になっているものと無効になるものがあります。 アップロードファイルがイメージであるかどうかを確認するために使用されるファイルタイプを取得するための他の方法や手法はありますか?

+0

あなたのサーバー上であなたのPHPバージョンを更新する必要があります。 'mime_content_type(PHP 4> = 4.3.0、PHP 5、PHP 7)'、 'exec(PHP 4、PHP 5、PHP 7)'、 'finfo(PHP 5> = 5.3.0、PHP 7) ) 'は対応するバージョンでサポートされています。だからあなたのバージョンを今すぐ更新する代わりに、入手することをお勧めします。将来あなたは多くの問題に直面します –

+0

@Anant ji、私は共有ホスティングオンラインを使用しています。彼らは私の願いのように変更を拒否します。 – tapaljor

+0

ああダムはホスティングを共有しました。以下の答えを確認してください。近い将来、PHPの新しいバージョンで廃止予定のライブラリのため、クエリの実行などの問題に直面するので、 –

答えて

0

getimagesize()を使用して、アップロードされたファイルが画像であるかどうかを判断できます。

はgetimagesize()関数は任意の画像 ファイルのサイズを決定し、ファイルの種類と 高さ/幅テキストと共に寸法が返され

$image_info = getimagesize($_FILES['file']['tmp_name']); 
if ($image_info === FALSE) { 
    die("Uploaded file is not an image."); 
} 

、このようにそれを使用します通常のHTML IMGタグ内で使用される文字列と、対応するHTTPコンテンツタイプの です。

アップロードされたファイルが画像ではない場合は、FALSEを返します。

+0

Patel jiを歓迎します。それは助けになった。今私のアプリは少し安全です。 – tapaljor

+0

あなたは大歓迎です:) –

関連する問題