0

Symfony1 の MIME タイプの検証は、高解像度の画像の検証に失敗するため、誤ったエラー メッセージを表示します。validate.yml の私の検証コードは次のとおりです。

mime_types:       
      - 'image/jpg'
      - 'image/jpeg'
      - 'image/png'
      - 'image/gif'
      - 'image/bmp' 
      - 'application/pdf'       
    mime_types_error: The allowed file extensions are:jpg, png, gif, bmp and pdf

ただし、サイズが 2 ~ 3 MB の高解像度の画像をアップロードしようとすると、次のような MIME タイプのエラー メッセージがスローされます。

The allowed file extensions are:jpg, png, gif, bmp and pdf

ただし、ファイルの種類は .jpg に属します。これは symfony1 sfvalidator のバグですか? そして、どうすればこれを克服できますか?

4

1 に答える 1

1

通常の sfValidatorFile を試しましたか? 私のsf1.4アプリで頻繁に使用されていますが、問題はありませんでした。

$this->setWidget('file', new sfWidgetFormInputFile(array()));
$this->setValidator('file', new sfValidatorFile(array(
        'required'  => true,
        'path'      => sfConfig::get("sf_upload_dir").'/images',
        'max_size' => 5120000,
        'mime_types' => array('image/jpeg','image/pjpeg','image/png','image/x-png')
    ),
    array(
        'max_size' => 'Your file is too big',
        'mime_types' => 'This type of file is not allowed',
        'required' => 'Please choose a file'
    )
));

これを目的の Form クラスで使用し、「mime_types」をカスタマイズします。

これが機能しない場合は、Imagickを使用してみてください。これが役立つことを願っています!

于 2012-12-13T14:04:17.550 に答える