特定のファイルが画像かどうかを確認できますか? PHPでこれを行うにはどうすればよいですか?
ファイルが画像でない場合、警告メッセージを表示したい。
に加えてgetimagesize()
、使用できますexif_imagetype()
exif_imagetype() は、イメージの最初のバイトを読み取り、その署名をチェックします。
正しい署名が見つかると、適切な定数値が返されます。それ以外の場合、戻り値は FALSE です。戻り値は、インデックス 2 で getimagesize() が返す値と同じですが、exif_imagetype() の方がはるかに高速です。
どちらの関数でも、ファイルが画像であると判断されない場合は FALSE が返されます。
PHPでは、次のように行うことができます
if ((($_FILES['profile_picture']['type'] == 'image/gif') || ($_FILES['profile_picture']['type'] == 'image/jpeg') || ($_FILES['profile_picture']['type'] == 'image/png')))
Javascriptでは次のようにできます
function checkFile() {
var filename = document.getElementById("upload_file").value;
var ext = getExt(filename);
// alert(filename.files[0].filesize);
// alert(ext);
if(ext == "gif" || ext == "jpg" || ext=="png")
return true;
alert("Please upload .gif, .jpg and .png files only.");
document.getElementById("upload_file").value='';
return false;
}
function getExt(filename) {
var dot_pos = filename.lastIndexOf(".");
if(dot_pos == -1)
return "";
return filename.substr(dot_pos+1).toLowerCase();
}
で php
使用できfiletype ( string $filename )
、mime_content_type ( string $filename )
しかしmime_content_type ( string $filename )
_deprecated
http://php.net/manual/en/function.filetype.php
ではjavascript
、カスタム関数を使用できます
http://my-sliit.blogspot.in/2009/04/how-to-check-upload-file-extension.html
私はこれを見つけて...
$type =array('jpg','gif');
foreach($type as $val){
if($_FILES['filename']['type'] == 'image/$val')
{
echo "its an image file";
}
else{
echo "invalid image file"
}