当文件太大时,上传不起作用

Jas*_*ett 5 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
                )

        )

)
Run Code Online (Sandbox Code Playgroud)

我有另一个CSV文件,更像是13兆字节,当我尝试上传时,我得到了这个:

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
                )

        )

)
Run Code Online (Sandbox Code Playgroud)

我没有得到任何错误,说该文件太大了.我只是变得格格不入$_FILES.我post_max_size在php.ini中设置为100MB.为什么会这样?

Mar*_*c B 13

根据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 +脚本空间高架

最重要的是,还有Web服务器限制.Apache有了LimitRequestBody,它会在PHP进入图片之前很久就会应用.