在PHP中验证多个文件(IMG)

问题描述 投票:0回答:1

我正在创建一个网站,希望在该网站中以某种形式提供文件:

            <input id="foto-disfraz[]" name="foto-disfraz[]" type="file"/>
            <button type='button' class="agregarotra">Agregar otra foto</button>
            <span class="error"><?= $fotoErr ?></span> 

您可以使用旁边的使用JS的按钮“ agregarotra”添加更多文件:


    jQuery(document).ready(function() {
        var nfotos = 1;
        $('.agregarotra').click(function(e) {
            e.preventDefault();
            if (nfotos < 5) {
                $(this).before("<input id='foto-disfraz[]' name='foto-disfraz[]' type='file'/>");
                nfotos++;
            } else {
                alert("Ya tienes el máximo numero de fotos posibles");
            }
        });
    });

我必须验证表单中添加的每个文件,因为它们是必需的,所以我必须至少拥有一个文件。如果我有更多,我必须验证用户添加的每个文件。现在,我试图至少验证一个文件,所以我的想法是验证foto-disfraz不为空,然后将该文件添加到$ foto变量中,以便以后可以将其添加到数据库中。

    $foto=$fotoErr='';
    ...
      if(isset($_FILES["foto-disfraz[]"])) {
        $foto = $_FILES["foto-disfraz[]"];
      }
      else {
        $fotoErr = "* Foto es obligatoria";
      }
    ...
    }

所以现在我的问题是,它总是给我错误,似乎它没有将文件保存在试图保存到的变量中。我不知道我是在正确使用_FILE方法,还是在if条件下失败,因为它们可能是多个文件或其他文件。我不知道还有什么可以添加的详细信息,因此,如果我缺少可以添加和编辑和更新的代码之外的重要内容,可以添加。

php html forms
1个回答
0
投票

$_FILES["foto-disfraz[]"]是错误的。 HTML元素名称中的[]用于向浏览器指示这是一组元素中的一个,其值应作为列表提交。

在PHP中,只需使用$_FILES["foto-disfraz"]-您应该发现它包含所有已上传文件的数组。

© www.soinside.com 2019 - 2024. All rights reserved.