PHPでアップロードされたファイルタイプのチェック方法(fileinfo, mime-type) サンプル編

PHPでアップロードされたファイル形式(拡張子)のチェック方法です。

色々調べた所、PECLのFileinfo 関数というのが良さそうだったのでメモ。

インストール編はこちら

実際のサンプルコード。


<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension

if (!$finfo) {
echo "fileinfo データベースのオープンに失敗しました";
exit();
}

/* 指定したファイルの mime タイプを取得します */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* 接続を閉じます */
finfo_close($finfo);
?>

参考はこちら:
http://jp.php.net/manual/ja/ref.fileinfo.php

PHPでアップロードされたファイルタイプのチェック方法(fileinfo, mime-type) インストール編

PHPでアップロードされたファイル形式(拡張子)のチェック方法です。

色々調べた所、PECLのFileinfo 関数というのが良さそうだったのでメモ。

サンプル編はこちら

まずは、インストール。

$ sudo pecl install fileinfo

Build process completed successfully
Installing '/usr/lib/php/modules/fileinfo.so'
install ok: channel://pear.php.net/Fileinfo-1.0.4

次に、iniファイルの新規作成。

$ sudo vi /etc/php.d/fileinfo.ini

extension=fileinfo.so

次に、apacheの再起動

$ sudo /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

最後に、phpinfo()で[fileinfo]の項目があればインストール完了!!

PHPで画像をリサイズ(ImageMagickとimagick) サンプル編

PHPで画像を縮小(サムネイル化)する必要があったのでメモ。

インストール編はこちら

実際に画像をサムネイル化する簡単なサンプル。

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// 幅あるいは高さに 0 を指定すると、
// 元の画像のアスペクト比を維持します
$image->thumbnailImage(100, 0);

echo $image;

?>

参考はこちら:
http://jp.php.net/imagick

こちらも:
http://labs.unoh.net/2007/05/php_7.html