我有一个可以上传文件的 PHP 应用程序。当我上传大部分文件并执行 print_r($_FILES)
时,我得到如下信息:
Array
(
[import] => Array
(
[name] => Array
(
[excel_file] => COD MKTG 2.csv
)
[type] => Array
(
[excel_file] => application/vnd.ms-excel
)
[tmp_name] => Array
(
[excel_file] => /tmp/phpy8mEKn
)
[error] => Array
(
[excel_file] => 0
)
[size] => Array
(
[excel_file] => 1584286
)
)
)
我有另一个大约 13 兆字节的 CSV 文件,当我尝试上传它时,我得到了这个:
Array
(
[import] => Array
(
[name] => Array
(
[excel_file] => COD MKTG.csv
)
[type] => Array
(
[excel_file] =>
)
[tmp_name] => Array
(
[excel_file] =>
)
[error] => Array
(
[excel_file] => 1
)
[size] => Array
(
[excel_file] => 0
)
)
)
我没有收到任何错误提示说文件太大。我刚得到一个格式错误的 $_FILES
。我将 php.ini 中的 post_max_size
设置为 100MB。为什么会这样?
最佳答案
根据 PHP 文档,错误代码 1 是 UPLOAD_ERR_INI_SIZE : "上传的文件超过了php.ini中的upload_max_filesize指令"
您需要确保正确设置了以下所有变量:
upload_max_filesize - 上传中任何单个文件的最大大小
max_file_uploads - 允许上传的文件总数
post_max_size - 发布的所有数据的总和(表单数据 + 文件)
memory_limit - 必须 > post_max_size,为 PHP + 脚本开销留出空间
除此之外,还有网络服务器限制。 Apache 有 LimitRequestBody这在 PHP 出现之前很久就适用了。
关于php - 文件太大时无法正常上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4044201/