2012-04-03 12 views
2

ファイルをアップロード中に、mime-typeがapplication/octet-streamとして取得されています。アップロードイメージを取得するMIMEタイプはアプリケーション/オクテットストリームです

私は Zend_Frameworksの2つの方法でMIMEタイプを決定しようとしていることを知るようになった

まず、それは拡張子がない場合には(すべてのサーバにインストールされていない)PECL FILEINFO-拡張 を使用しようとしますistalledはmime_content_type(PHP関数)の使用を試みます。しかし、この関数はPHPのバージョン5.3で廃止されました。

これで何をすればいいですか?ファイルをアップロードするユーザーが画像のみで、他のものではないことを確認するにはどうすればよいですか?アップロードされたファイルのMIMEタイプを検出するにはどうすればよいですか?

答えて

1

exif_imagetypeイメージの場合は、finfoをインストールすることをおすすめします。

例の実装については、thisを参照してください。

0

使用Zend_File_Transfer validatorsあなたはいけないタイプのエクスクルードする:

$upload = new Zend_File_Transfer(); 

    // Does not allow MIME type application/pdf and application/zip . 
    $upload->addValidator('ExcludeMimeType', false, array('application/pdf', 
                'application/zip')); 

か、また、転送されたファイルが画像ファイルであるかどうかを確認するIsImageバリデータを使用することができます

$upload = new Zend_File_Transfer(); 

// Checks whether the uploaded file is a image file 
$upload->addValidator('IsImage', false); 
+0

-1、MIMEタイプをファイル拡張子と同じではありません。 –

+0

oups、代わりにExcludeMimeTypeを意味しました。 –

+0

私の投票を取り戻すと、 'ExcludeMimeType'のアプローチはおそらく' finfo'と 'mime_content_type'に基づいているので、うまくいかないはずです。 'IsImage'バリデーターはすべきです。 –

関連する問題