Zend_File_Transferで画像が小さいとtypeの取得に失敗する

Zend_File_Transferで、小さい画像をアップロードすると、

$upload = new Zend_File_Transfer();

$files = $upload->getFileInfo();

で、ファイルの属性を取得した時、gif画像などのはずなのに
$info["type"]
を見ると、text/plainというように拡張子が変になってくる時がある。

解決策はいまいちまだ見当たらないが、サーバ次第では大丈夫なようなので、
PHP5.3やPHP5.1や、php.iniの特別な設定に違いがあるのかも?

しかし現時点ではこれは分からないので、仕方無いのでどうしてもファイルの拡張子を調べたい時は

$attr = getimagesize( $file );
$type = $attr[2];

if( strcmp($type,'1')==0 ){ $ext = ".gif"; }
elseif( strcmp($type,'2')==0 ){ $ext = ".jpg"; }
elseif( strcmp($type,'3')==0 ){ $ext = ".png"; }
else{ $ext = ""; }

というようにすればよい。

ポイントはgetimagesize関数を使う点。この関数の詳細は他サイトを参照してください。



コメントをどうぞ