1

Symfony2 プロジェクトにファイル アップロード機能があります。

maxSize パラメータを次のように設定しています。

$manuscript_file = new File(array(
        'maxSize' => '20M',
        'mimeTypes' => array(
            'application/msword',
            'application/zip',
        ),
        'mimeTypesMessage' => 'Please upload a valid manuscript file. Valid types are: doc, docx, zip',
    ));

問題は、2M または 3M のワード ファイルをアップロードしようとすると、検証メッセージが表示されることです。

 The file is too large. Allowed maximum size is 20M bytes.

あなたはそれに直面しましたか?または私のコードが間違っています。

Symfony のドキュメントから例を取り上げました。

symfony ファイル - 検証制約のリファレンス

4

3 に答える 3

10

私はすでにこの問題に直面しているので、この解決策を投稿します (これはあなたにとって同じ問題だと思います)。

これは Symfony の既知のバグです。実際、フレームワークは、ファイル サイズが PHP 構成に対して大きすぎる場合にも、従来の PHP エラーを取得する代わりにバリデータ エラー メッセージを表示します。

現在の PHP 構成では、おそらく最大アップロード サイズを 2M に制限しているため、Symfony は間違ったエラーを表示します。

したがって、php.iniファイル (Linux では /etc/php5/apache2/php.ini) を確認し、フィールドに合わせて max_upload_size を増やします。

upload_max_filesize = 20M

apache を再起動することを忘れないでください:apache2ctl restart

これでうまくいくはずです!

おそらく最後の Symfony バージョンで修正されていることに注意してください。別の解決策は、おそらくプロジェクトを sf2.3 にアップグレードすることです (しかし、私はそれについて確信が持てません) ^^

于 2013-06-14T13:44:07.667 に答える