PHP - 上传一个或两个文件(大照片)工作正常 - 上传5/6 +似乎甚至没有注册(它只显示上传表格)

我有一个基本上这个html的页面:
<form method="post" enctype="multipart/form-data"  action="photo_test.php">

<input class="fupload" name="uploadedfile[1]" type="file" />
<input class="fupload" name="uploadedfile[2]" type="file" />
<input class="fupload" name="uploadedfile[3]" type="file" />
<input class="fupload" name="uploadedfile[4]" type="file" />
<input class="fupload" name="uploadedfile[5]" type="file" />
<input class="fupload" name="uploadedfile[6]" type="file" />


<input type=submit>
和一些PHP来处理文件。如果上传了一些(通常&lt; 5)照片,则它可以正常工作 如果我上传5或6,它似乎甚至没有注册我上传的文件。我已经通过添加上面的代码测试了这个(这是在一个精简的测试页面上解决了什么错误)。 在上传几张照片时,它工作正常(即在print_r($ _ FILES)中显示文件详细信息。在上传5或6个时,它只打印一个空数组(与上传任何内容相同) 有任何想法吗? (这是完整的脚本。上传一个或两个图像显示print_r中的数据($ _ FILES)。上传5个或更多(ish),不显示任何数据。每张照片大约2-3mb)
<?


  ini_set('max_upload_filesize', 8388608);
 ini_set('upload_max_filesize', 8388608); 
 ini_set('memory_limit', '125M');
echo "<pre>";
print_r($_FILES);
print_r($_POST);

?> 


<form method="post" enctype="multipart/form-data"  action="photo_test.php">

<input class="fupload" name="uploaded[1]" type="file" />
<input class="fupload" name="uploaded[2]" type="file" />
<input class="fupload" name="uploaded[3]" type="file" />
<input class="fupload" name="uploaded[4]" type="file" />
<input class="fupload" name="uploaded[5]" type="file" />
<input class="fupload" name="uploaded[6]" type="file" />


<input type=submit>
</form>
结果: 如果我只上传一个文件
Array
(
    [uploadedfile] => Array
        (
            [name] => Array
                (
                    [1] => DSCN0426.JPG
                    [2] => 
                    [3] => 
                    [4] => 
                    [5] => 
                    [6] => 
                )

            [type] => Array
                (
                    [1] => image/jpeg
                    [2] => 
                    [3] => 
                    [4] => 
                    [5] => 
                    [6] => 
                )

            [tmp_name] => Array
                (
                    [1] => /tmp/phpNM967F
                    [2] => 
                    [3] => 
                    [4] => 
                    [5] => 
                    [6] => 
                )

            [error] => Array
                (
                    [1] => 0
                    [2] => 4
                    [3] => 4
                    [4] => 4
                    [5] => 4
                    [6] => 4
                )

            [size] => Array
                (
                    [1] => 2824091
                    [2] => 0
                    [3] => 0
                    [4] => 0
                    [5] => 0
                    [6] => 0
                )

        )

)
Array
(
)
如果我上传几个文件(5或6)
Array
(
)

Array
(
)
    
已邀请:

bab

PHP在执行脚本之前处理实际上载(并使用文件的大小和tmp路径填充$ _FILES全局数组),因此脚本中的任何ini_get()或set_time_limit()调用都将是无用的。 您需要在php.ini中修复此问题,如果您在共享的盒子上,则需要向您的ISP询问。 另外,请记住增加'post_max_size'值http://www.php.net/manual/en/ini.core.php#ini.post-max-size     
当上传文件的大小超过post_max_size时,会发生此错误。 上传2个大文件时遇到同样的问题,当我更改此值时,它运行良好。 另外,也许您必须更改upload_max_filesize值。 如果你在localhost上工作,你可以轻松地更改php.ini。 但是当您想要在服务器中更改为Cpanel时,可以按照http://www.webhostingzone.org/change-php-settings.html进行操作     
什么是你的php.ini的post_max_size? 您还必须调整此值(默认为8MB),这就是您的$ _POST数组为空的原因。 编辑:无法使用ini_set更改upload_max_filesize和post_max_size,因为它们的可更改状态设置为PHP_INI_PERDIR(请参阅http://be2.php.net/manual/en/ini.list.php)它应该是PHP_INI_USER。 所以,你显然坚持默认值(可能是2M和8M)因此空$ _FILES。 您必须使用服务器配置(php.ini或apache conf)或.htaccess文件更改这些选项。请参见http://php.net/manual/en/configuration.changes.php     
脚本可能超时。您应该尝试上传6个非常小的文件和/或查看
set_time_limit()
    

要回复问题请先登录注册