我正在创建一个网站,希望在该网站中以某种形式提供文件:
<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条件下失败,因为它们可能是多个文件或其他文件。我不知道还有什么可以添加的详细信息,因此,如果我缺少可以添加和编辑和更新的代码之外的重要内容,可以添加。
$_FILES["foto-disfraz[]"]
是错误的。 HTML元素名称中的[]
用于向浏览器指示这是一组元素中的一个,其值应作为列表提交。
在PHP中,只需使用$_FILES["foto-disfraz"]
-您应该发现它包含所有已上传文件的数组。