我正在处理PHP文件上传。首先,我尝试使用Just HTML / PHP代码,没有任何上传者(uploadify)等。
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
但没有运气,它总是采用默认8M
。我也尝试像这样在
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.
现在我的问题是为什么它无法覆盖.htacess
或PHP代码? 注意我在VPS服务器上。当我手动将8M更改为xM
时,它可以正常工作。希望我很清楚,提前谢谢......
答案 0 :(得分:1)
您似乎错过了在网站目录的apache配置中添加“AllowOverride All”...因此,您的htaccess中的值不会被覆盖..
检查这些链接
http://forum.owncloud.org/viewtopic.php?f=8&t=1809
http://blog.triphp.com/lessons/htaccess/allow-override
希望它有所帮助!
答案 1 :(得分:0)
如果你用这样的东西直接编辑php.ini:
php_value upload_max_filesize 750M
php_value post_max_size 750M
它有效,有什么问题?你无法以其他方式做到这一点,但这样做有什么不对?