多次上传PHP:丢失变量

时间:2015-06-12 19:26:14

标签: php html

使用表单多次上传图片时出现问题。

代码可以上传1张图片var_dump $_POST$_FILES已经确定并在action_gallery.php中完成了),但是当我想要上传更多时,它会出错超过1个文件(不再有var_dump并且我的数组pictures[]得到了未定义的索引错误。)

我失去了所有信息:不再有$_POST,没有$_FILES ...除了当我只有1张照片时一切顺利。有人知道我的错误在哪里?

HTML:

<form method="post" action="modele/action_gallery.php" enctype="multipart/form-data">       
    <table id="table_header_diaporama">
        <tr>
            <td align="center" colspan="3">
                <input type="hidden" name="MAX_FILE_SIZE" value="5000000" /><input class="text_profile_form" type="file" name="pictures[]" multiple="multiple" />
                <input type="hidden" name="MAX_FILE_SIZE" value="5000000" /><input class="text_profile_form" type="file" name="pictures[]" multiple="multiple" />
                <input type="hidden" name="MAX_FILE_SIZE" value="5000000" /><input class="text_profile_form" type="file" name="pictures[]" multiple="multiple" />
            </td>
        </tr>
    </table>
</form>

的php.ini:

file_uploads = On
max_file_uploads = 20
upload_max_filesize = 100M
post_max_size = 100M

非常感谢。

修改:我设法通过 $_POST 恢复enctype="multipart/form-data"切换 enctype="application/x-www-form-urlencoded" 。现在,检查内容,看看我是否一切正常。

Edit2:让$count = count($_FILES['pictures']['name']); echo '$count: '.$count;给我0;所以,我的问题仍然没有解决! $_POST现在好了,但$_FILES仍然是空的!

Edit3:我终于恢复了 enctype="multipart/form-data" 关闭计算机的夜晚......之后它正在工作......不知道为什么知道它有效! (用1或多于1个输入行来回答timgavin!)。

1 个答案:

答案 0 :(得分:0)

我认为具有相同名称的多个表单元素可能会相互覆盖。

如果您只选择带有第一个和/或第二个元素的图像 - 并且因为它们都具有相同的名称 - 也许第三个元素可能会用空值覆盖前两个元素。

由于您正在使用multiple="multiple",请尝试仅使用一个表单元素,看看会发生什么。

<form method="post" action="modele/action_gallery.php" enctype="multipart/form-data">       
    <table id="table_header_diaporama">
        <tr>
            <td align="center" colspan="3">
                <input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
                <input class="text_profile_form" type="file" name="pictures[]" multiple="multiple" />
            </td>
        </tr>
    </table>
</form>