Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多文件上载只上载一篇文章_Php_Mysql_Multiple File Upload - Fatal编程技术网

Php 多文件上载只上载一篇文章

Php 多文件上载只上载一篇文章,php,mysql,multiple-file-upload,Php,Mysql,Multiple File Upload,下面是使用php和mysql进行多文件上传的代码。但由于某些原因,如果选择了“n”个文件,则似乎只上载最后一个(或第n个)文件 以下是各自的文件: HTML 我尝试编写代码,将每个文件路径作为逗号分隔的值数组插入,以便用户可以为数据库中的一条记录上载多个图像。这很重要 提前通知Tnx foreach看起来不太合适。在uploadfile.php中尝试使用此代码段代替foreach部分。它构建的循环稍有不同,检查tmp_名称以查看循环是否应该继续 if(isset($_POST['psubmit'

下面是使用php和mysql进行多文件上传的代码。但由于某些原因,如果选择了“n”个文件,则似乎只上载最后一个(或第n个)文件

以下是各自的文件:

HTML

我尝试编写代码,将每个文件路径作为逗号分隔的值数组插入,以便用户可以为数据库中的一条记录上载多个图像。这很重要


提前通知Tnx

foreach看起来不太合适。在uploadfile.php中尝试使用此代码段代替foreach部分。它构建的循环稍有不同,检查tmp_名称以查看循环是否应该继续

if(isset($_POST['psubmit']))
{
    $imagearray = array();
    for ($i = 0; $_FILES['pfile']['tmp_name'][$i] $i++)
    {
        $pfname = $_FILES["pfile"]['name'][$i];
        $pftype = $_FILES['pfile']['type'][$i];
        $pfsize = $_FILES['pfile']['size'][$i];
        $pftmploc = $_FILES['pfile']['tmp_name'][$i];
        $pferror = $_FILES['pfile']['error'][$i];
        $blast = explode(".", $pfname);
        $pfextn = end($blast);
        array_push($imagearray, $pfname);
        if (!empty($ps) && empty($pfname)) 
        { ...

这辆车看起来不太对劲。在uploadfile.php中尝试使用此代码段代替foreach部分。它构建的循环稍有不同,检查tmp_名称以查看循环是否应该继续

if(isset($_POST['psubmit']))
{
    $imagearray = array();
    for ($i = 0; $_FILES['pfile']['tmp_name'][$i] $i++)
    {
        $pfname = $_FILES["pfile"]['name'][$i];
        $pftype = $_FILES['pfile']['type'][$i];
        $pfsize = $_FILES['pfile']['size'][$i];
        $pftmploc = $_FILES['pfile']['tmp_name'][$i];
        $pferror = $_FILES['pfile']['error'][$i];
        $blast = explode(".", $pfname);
        $pfextn = end($blast);
        array_push($imagearray, $pfname);
        if (!empty($ps) && empty($pfname)) 
        { ...

看来你的逻辑搞错了。必须在循环通过$\u FILES数组的同一个foreach()中执行move\u uploaded\u file()

...
echo "ERROR: An error occured while processing the file. Try again.";
            exit();
       }
   }

   move_uploaded_file(...
}

您所做的是尝试在单独的foreach块中使用$pftmploc变量作为临时文件路径执行move_upload_file()。但由于该变量是在前一个foreach()循环中分配的,因此它表示上载文件数组的最后一个元素。这就是你没有上传所有文件的原因

看来你的逻辑搞错了。必须在循环通过$\u FILES数组的同一个foreach()中执行move\u uploaded\u file()

...
echo "ERROR: An error occured while processing the file. Try again.";
            exit();
       }
   }

   move_uploaded_file(...
}

您所做的是尝试在单独的foreach块中使用$pftmploc变量作为临时文件路径执行move_upload_file()。但由于该变量是在前一个foreach()循环中分配的,因此它表示上载文件数组的最后一个元素。这就是你没有上传所有文件的原因

tq为您提供提示。将尝试返回!!不,仍然是一样的..只有最后一个文件被上传不太确定。有些代码元素可能被我们看不到的其他代码所掩盖。例如,什么是“$ps”?我看不出这个变量是在哪里定义的。此外,还有一些不一致的地方,比如在一个“if”语句中有这样的条件:“!empty($pfname)&&&&!empty($ps)”,而另一个“if”语句中有这样的条件:“if(empty($ps))”,该内部语句将永远不会执行。我只能假设有些东西是从其他来源取出来的或是从其他来源复制进来的。不放弃,但也许你可以澄清一些事情。同时我会再看一看。tq fr ur建议…是的,我拿出了betn中的代码,这意味着其他文件类型,因为我很想允许多个图像上传…我想我没有正确编辑它b4发布!。。。我将相应地编辑我的问题…tq为您提示答案…将尝试返回!!不,仍然是一样的..只有最后一个文件被上传不太确定。有些代码元素可能被我们看不到的其他代码所掩盖。例如,什么是“$ps”?我看不出这个变量是在哪里定义的。此外,还有一些不一致的地方,比如在一个“if”语句中有这样的条件:“!empty($pfname)&&&&!empty($ps)”,而另一个“if”语句中有这样的条件:“if(empty($ps))”,该内部语句将永远不会执行。我只能假设有些东西是从其他来源取出来的或是从其他来源复制进来的。不放弃,但也许你可以澄清一些事情。同时我会再看一看。tq fr ur建议…是的,我拿出了betn中的代码,这意味着其他文件类型,因为我很想允许多个图像上传…我想我没有正确编辑它b4发布!。。。我将相应地编辑我的问题…tq供你建议…我尝试过重新编辑这个问题…请检查一下..问题是,现在虽然文件正在移动,但数据库中只记录了一个名称..我想要一个包含所有图像名称的数组,与该帖子的db中的单个帖子id行相对应@凡妮莎:那很容易。您必须取出$arraymov=array();语句退出foreach()循环。应该在开始循环之前放置它。按此顺序:if(isset($\u POST['psubmit']){$arraymov=array();foreach($\u文件)['pfile'…@Vanessa341很高兴它能帮上忙。tq为您提供建议…我尝试过重新编辑这个问题…请检查一下..bt问题是,现在虽然文件正在移动,但数据库中只记录了一个名称..我想要一个包含所有图像名称的数组,与数据库中该帖子的单个帖子id行相对应..@Vanessa341这很简单。您必须将$arraymov=array();语句从foreach()循环中取出。它应该放在您开始循环之前。顺序如下:if(isset($\u POST['psubmit']){$arraymov=array();foreach($\u FILES['pfile'…@vanesa341很高兴它有帮助。
...
echo "ERROR: An error occured while processing the file. Try again.";
            exit();
       }
   }

   move_uploaded_file(...
}