我有一个 php 表单,它有已知数量的列(例如顶级产品、价格、数量、文件(文件输入)),但行数未知,因为用户可以根据需要添加行。
我正在使用多维数组:
name="prod[0][name]"
name="prod[0][qty]"
name="prod[0][file]"
在我使用的帖子上
if ( isset( $_POST['prod'] ) )
{
foreach ( $_POST['prod'] as $value )
{
//some code here
if (isset($_FILES[$value["file"]]["name"]) &&
($_FILES[$value["file"]]["size"] > 0) &&
($_FILES[$value["file"]]["error"]==0) &&
$_FILES[$value["file"]]["name"] != "" )
{
//code of uploading file
}
}
我的问题是我无法上传文件,我总是收到错误
$value["文件"] 未定义
请帮忙
该错误正确指出该级别的数组中没有file
键。相反,您应该使用 foreach
循环中的密钥。
在我的头顶上,它应该是这样的:
foreach ( $_POST['prod'] as $key => $value ) {
^^^^ this will be your numeric index
//some code here
if (isset($_FILES['prod']['name'][$key]['file']) ...
但是您最好做一个var_dump($_FILES['prod']);
来确认这一点,因为我不确定 php 如何处理多级文件上传数组。
您是否在表单元素上设置了 enctype 属性?
<form ... enctype="multipart/form-data">
...
</form>
http://www.w3schools.com/tags/att_form_enctype.asp