即使图像大小低于upload_max_filesize,文件上传也会返回错误

时间:2012-05-23 23:36:14

标签: php

当我尝试上传大约4mb的图像时,$ _FILES ['upload'] ['error']返回1并且文件不会上传。但在我的php.ini中,我将upload_max_filesize设置为20mb ....

为什么我收到错误?

用于检查错误的PHP代码

if ($_FILES['upload']['error']) {
   array_push($not_uploaded, $_FILES['upload']['name']);
   if ($_FILES['upload']['error'] == 1) {
     trigger_error('Iimage exceeded server php upload limit', E_USER_WARNING);
     array_push($error_msgs, elgg_echo('services:image_mem'));
   } else {
     array_push($error_msgs, elgg_echo('services:unk_error'));
          }
 }

2 个答案:

答案 0 :(得分:2)

您还应该检查php.ini文件中变量post_max_size的配置。

在PHP文档中:Common Pitfalls

  

如果post_max_size设置得太小,则无法上传大文件。   确保将post_max_size设置得足够大。

答案 1 :(得分:0)

正如php docs所说,您需要在实际文件之前发送名称为MAX_FILE_SIZE的(通常是隐藏的)字段。虽然理论上即使没有它也不能使用4MB,但这可能是一些硬编码的默认值。

使用上述PHP文档页面的示例表单作为起点。