使用php

时间:2016-02-25 10:43:33

标签: php file-upload

我有一个具有已知列数的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”]未定义

请帮助

2 个答案:

答案 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>

http://www.w3schools.com/tags/att_form_enctype.asp