• 締切済み

addruleでアップロードさせる画像の種類をコントロールする

こんにちは pearの addruleについてご質問させていただきます。 phpのフォームからアップさせる画像の種類をコントロールしたいのですがaddruleのmimetypeでできると思ったのですがうまくいきません。 下に記述したように jpg, jpeg, gif, png, xbm だけをアップ可能にしたいのですが、なぜか今gifのみアップでき、他がすべてエラーになってしまいます。 はじめに $pictype という配列を作成しそこにアップ可能なタイプを指定、それをaddruleで読み込んでいるつもりなのですが... 間違いのご指摘お願いいたします。 $pictype = array('image/jpeg','image/jpeg','image/gif','image/png','image/x-xbitmap'); $this->addRule('pic1', '■写真1* が読み込めません。写真は (jpg, jpeg, gif, png, xbm) が使用可能です', 'mimetype', $pictype );

みんなの回答

  • Javac
  • ベストアンサー率25% (12/48)
回答No.2

MIMEの判定が間違っているようです。 また、mimetype は、デフォルトでは使えないものだったと思います。 私もレンタルサーバが非対応だったため、下記のように判定してます。 switch( $_FILES['user_file']['type'] ){  case "image/gif":  case "image/pjpeg":  case "image/x-png": ※ちなみに、この方法だと、IEのみUP可能となります。

  • cybert
  • ベストアンサー率56% (18/32)
回答No.1

addRuleについてはよく分かりませんが、 アップロードされた画像の拡張子を 正規表現とかexplodeなんかで取り出して 正規表現でチェックするのは駄目ですか?