-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。显示 PHP 说

UPLOAD_ERR_FORM_SIZE

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

现在我的问题是为什么它不能覆盖 from.htacess或 PHP 代码?注意我在 VPS 服务器上。当我将 8M 更改为xM手动时,它可以工作。希望我清楚,提前谢谢...

4

2 回答 2

1

似乎您错过了在站点目录的 apache 配置中添加“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 回答