我有一个具有已知列数的PHP表单(例如,顶级产品,价格,数量,文件(文件输入)),但行数未知,因为用户可以根据需要添加行。 / p>
我正在使用多维数组:
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”]未定义
请帮助
答案 0 :(得分:1)
错误正确地指出阵列中该级别没有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如何处理多级文件上传数组。
答案 1 :(得分:0)
您是否在表单元素上设置了enctype属性?
<form ... enctype="multipart/form-data">
...
</form>