为了账号安全,请及时绑定邮箱和手机立即绑定

为什么上传了多个文件之后,print_r之后只有最后一个文件显示出来。

<?php

//print_r($_FILES);

/**

 * 构件上传文件信息

 * @return unknown|unknown[]

 */

require_once '../lib/string.func.php';

function buildInfo()

{

    $i=0;

    $files=array();

    foreach ($_FILES as $v)

    {

        if(is_string($v['name']))//多文件

        {

          $files[$i]=$v;

          $i++;

        }else{

            foreach ($v['name'] as $key=>$val)

            {

                $files[$i]['name']=$val;

                $files[$i]['size']=$v['size'][$key];

                $files[$i]['tmp_name']=$v['tmp_name'][$key];

                $files[$i]['error']=$v['error'][$key];

                $files[$i]['type']=$v['type'][$key];

                $i++;

            }

        }

    }

    return $files;

}

function uploadfile($path="uploads",$allowExt=array("gif","png","jpeg","jpg","wbmp"),$maxsize=2097152,$imageFlag=true)

{

   

    if(!file_exists($path))

    {

        mkdir($path,0777,true);

    }

    $files=buildInfo();

    foreach ($files as $file)

    {

        $i=0;

        $uploadFiles=array();

        if($file['error']==UPLOAD_ERR_OK)

        {

            $ext=getEXT($file['name']);

            if(!in_array($ext, $allowExt))

            {

                exit("非法文件类型");

            }

            if($imageFlag)

            {

                if(!getimagesize($file['tmp_name']))

                {

                    exit("不是真正的图片类型");

                }

            }

            if($file['size']>$maxsize)

            {

                exit("上传文件过大");

            }

            if(!is_uploaded_file($file['tmp_name']))

            {

                exit("不是通过POST方式上传的");

            }

            $filename=getUniName().".".$ext;

            $destination=$path."/".$filename;

            if(move_uploaded_file($file['tmp_name'], $destination))

            {

                $file['name']=$filename;

                unset($file['error'],$file['tmp_name'],$file['size'],$file['type']);

                $uploadFiles[$i]=$file;

                $i++;

            }

           

        }

        else

        {

            switch ($file['error'])

            {

                case 1://UPLOAD_ERR_INI_SIZE

                    $mes="超过配置文件上传文件大小";

                    break;

                case 2://UPLOAD_ERR_FORM_SIZE

                    $mes="超过了表单设置上传文件大小";

                    break;

                case 3://UPLOAD_ERR_PARTIAL

                    $mes="文件部分被上传";

                    break;

                case 4:

                    $mes="没有文件被上传";

                    break;

                case 6:

                    $mes="没有找到临时目录";

                    break;

                case 7:

                    $mes="文件不可写";

                    break;

                case 8:

                    $mes="由于php扩展程序中断了文件上传";

                    break;

            }

        }

    }

    return $uploadFiles;

}

$fileInfo=uploadfile();

print_r($fileInfo);


正在回答

1 回答

   $files=buildInfo();

    foreach ($files as $file)

    {

        $i=0;

$i要在foreach外初始化 ,

   $files=buildInfo();

    $i=0;    

   foreach ($files as $file)

    {

      


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
手把手教你实现电商网站后台开发
  • 参与学习       117285    人
  • 解答问题       1999    个

手把手教你用PHP搭建电子商务平台,由浅入深教你搭建电商系统

进入课程

为什么上传了多个文件之后,print_r之后只有最后一个文件显示出来。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信