php - 文件太大时无法正常上传

标签 php file-upload

我有一个可以上传文件的 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/

相关文章:

php - 如何在php中将时间转换为字符串

c# - jquery 主题生成器 CSS 问题

javascript - 将类中定义的 php 对象获取到单独文件中的 javascript

linux - 上传文件到远程服务器

jsf - 如何使用PrimeFaces p:fileUpload?永远不会调用监听器方法,或者UploadedFile为null/引发错误/不可用

php - 更新后获取以前的值 - MySql

php - 用 Umlaute 替换德语字符到简单的拉丁字符 php

javascript - 等待上传完成后再单击按钮

ios - AFNetworking 文件上传失败

javascript - 将多个图像(文件)从一个文件输入分配到另一个文件输入 - 上传