6

フォームでアップロードの最大ファイルサイズを設定しています:

$file = new Zend_Form_Element_File('file');
$file->setLabel('File to upload:')
    ->setRequired(true)
    ->addValidator('NotEmpty')
    ->addValidator('Count', false, 1)
    ->addValidator('Size', false, 10485760) //10MB = 10,485,760 bytes
    ->setMaxFileSize(10485760)
    ->setDestination(APPLICATION_UPLOADS_DIR);
$this->addElement($file);

しかし、Zend Framework アプリケーションで次のエラー メッセージが表示されます。

Notice: Your 'upload_max_filesize' config setting limits the maximum filesize to '2097152'. You tried to set '10485760' in /location/to/Zend/Form/Element/File.php on line 620

私は何を間違っていますか?

4

4 に答える 4

13

これupload_max_filesizeは、PHP 自体の構成のオプションであり、Zend Framework には依存しません。

その最大アップロード サイズを変更する必要がある場合は、php.iniファイルに設定する必要があります。変更する必要があることに注意してくださいpost_max_size

于 2009-12-10T20:04:11.480 に答える
5

これは少し前に尋ねられたことは知っていますが、答えはまだ関連しており、実際にはこのメッセージにはありません。

元のポスターは次のように述べています。

Notice: Your 'upload_max_filesize' config setting limits the maximum filesize to '2097152'. You tried to set '10485760' in /location/to/Zend/Form/Element/File.php on line 620

そしてさらに注意してください:

これを機能させることができませんでした: ini_set('post_max_size', 10485760)

技術的には、クラス メソッド setMaxFileSize() は、その ini_set と同じことを行っています。

ほとんど文書化されていませんが、ここで適用されるのは、この値を、起動時に読み取られる php.ini の値を超えない任意の値に変更できることです。

たとえば、*nix のデフォルト値は 2M です。php.ini を変更していない場合、この値は 0 から 2097152 までの数字でしか上書きできません。

最後のメモ。Pascal MARTIN の投稿で述べたように、upload_max_filesize と post_max_size はある程度密接に関係していることが言及されています。他に考慮すべきことは、これらの値をある程度大きな数にする場合、メモリ不足のためにスクリプトが失敗するため、おそらく memory_limit 値も考慮されるようにすることです。

于 2012-05-08T12:43:59.063 に答える
1

デフォルトでは、php 設定のupload_max_filesizeは 2MB です。これは、アップロード方法の最大ファイル サイズとは無関係です。php.ini ファイルでupload_max_filesizeを増やすことができます。

または、変更がそのプロジェクトのみに適用されるように、プロジェクトの.htaccessファイルで変更することもできます。例えば ​​:-

php_value upload_max_filesize 20M
php_value post_max_size 25M
php_value memory_limit 100M

ただし、 post_max_size を upload_max_filesize より大きく保ち、 memory_limit をpost_max_sizeより大きくする必要があります。

于 2016-03-21T06:17:18.700 に答える
-2

php.ini のデフォルトの最大サイズを上書きしましたか?

于 2009-12-10T20:03:34.477 に答える