-1

私はPHPファイルのアップロードを扱っています。まず、アップローダ(uploadify)などを使用せずにHTML/PHPコードのみで試しています.

HTMLコード

<form method="post" action="" enctype="multipart/form-data">
    <label for="upload">Select : </label>
    <input type="file" name="file_upload" id="upload" multiple="multiple" />
    <!-- 1024 x 1024 x 1024 -->
    <input type="hidden" name="MAX_FILE_SIZE" value="1073741824" />
    <input type="submit" name="fsubmit" id="fsubmit" value="Upload" />
</form>

PHP コード

if (isset($_FILES['file_upload']) && $_FILES['file_upload']['error'] == 0) {
    move_uploaded_file($_FILES[$field_name]['tmp_name'], '../somepath/.../' . $_FILES['file_upload']['name');
} else {
    echo $_FILES['file_upload']['error'];
}

8Mb 未満のファイルをアップロードしています。PHP のデフォルトをオーバーライドするため.htaccessに、これに変更して apache を再起動しました。

php_value upload_max_filesize 1024M # also tried "1024M"
php_value post_max_size 1024M # also tried "1024M"
php_value max_execution_time 3600
php_value max_input_time 3600

しかし、運が悪かったので、常に default を取ります8M。私はまた、このようにオンザフライでPHPコードから設定を変更しようとします

ini_set('upload_max_filesize', '1024M');
ini_set('post_max_size', '1024M');
ini_set('max_execution_time', '600');
ini_set('max_input_time', '600');
ini_set('memory_limit', -1); // no memory limit

echo ini_get('post_max_size')が表示されている場合、これも効果がありません8M。エラー コードの戻り値は 2 です。

UPLOAD_ERR_FORM_SIZE

Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.

.htacess今私の質問は、PHPコードからオーバーライドできないのはなぜですか? 私はVPSサーバーにいます。8M をxM手動に変更すると動作します。私が明確であることを願っています、前もって感謝します...

4

2 に答える 2

1

サイト ディレクトリの apache config に「AllowOverride All」を追加し忘れたようです...このため、htaccess の値は上書きされません..

これらのリンクを確認してください

http://forum.owncloud.org/viewtopic.php?f=8&t=1809

http://blog.triphp.com/lessons/htaccess/allow-override

それが役に立てば幸い !

于 2013-02-18T09:05:04.667 に答える
0

次のように php.ini を直接編集する場合:

php_value upload_max_filesize 750M
php_value post_max_size 750M

問題は何ですか?他の方法ではできませんが、この方法では何が問題なのですか?

于 2013-02-18T04:58:38.757 に答える