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

老师这个upload2跳转doAction 不能将数组按0 1 2 3这样显示啊 这是怎么回事?

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html"; Charset="utf-8">
    <title></title>
</head>
<body>
<form action="doAction3.php" method="post" enctype="multipart/form-data">
    请选择上传文件<input type="file" name="myFile[]" /><br/>
    请选择上传文件<input type="file" name="myFile[]" /><br/>
    请选择上传文件<input type="file" name="myFile[]" /><br/>
    请选择上传文件<input type="file" name="myFile[]" /><br/>
    <input type="submit" value="上传" />
</form>
</body>
</html>

doAction3.php

<?php

// print_r($_FILES);

function buildInfo(){

    $i=0;

    foreach($_FILES as $v){

        //单文件

        if(is_string('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;

}


$info=buildInfo();

print_r($info);


正在回答

2 回答

<?php

require_once '../lib/string.func.php';
require_once 'upload.func.php';
header("content-type:text/html;charset=utf-8");

function buildInfo(){
    foreach($_FILES as $v){
        $i=0;

        //单文件,类型为字符串
        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]['type']=$v['type'][$key];
                $files[$i]['tmp_name']=$v['tmp_name'][$key];
                $files[$i]['error']=$v['error'][$key];
                $i++;
            }
        }
        return $files;
    }
}
$info=buildInfo();
print_r($info);


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

<?php 

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

header("content-type:text/html;charset=utf-8");

//print_r($_FILES);

/**

 * 构建上传文件信息

 * @return array

 */

function buildInfo(){

$i=0;

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","jpeg","png","jpg","wbmp"),$maxSize=2097152,$imgFlag=true){

if(!file_exists($path)){

mkdir($path,0777,true);

}

$i=0;

$files=buildInfo();

foreach($files as $file){

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

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

//检测文件的扩展名

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

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

}

//校验是否是一个真正的图片类型

if($imgFlag){

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

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

}

}

//上传文件的大小

if($file['size']>$maxSize){

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

}

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

exit("不是通过HTTP 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']);

$uploadedFiles[$i]=$file;

$i++;

}

}else{

switch($file['error']){

case 1:

$mes="超过了配置文件上传文件的大小";//UPLOAD_ERR_INI_SIZE

break;

case 2:

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

break;

case 3:

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

break;

case 4:

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

break;

case 6:

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

break;

case 7:

$mes="文件不可写";//UPLOAD_ERR_CANT_WRITE;

break;

case 8:

$mes="由于PHP的扩展程序中断了文件上传";//UPLOAD_ERR_EXTENSION

break;

}

echo $mes;

}

}

return $uploadedFiles;

}

$fileInfo=uploadFile();

print_r($fileInfo);










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

举报

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

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

进入课程

老师这个upload2跳转doAction 不能将数组按0 1 2 3这样显示啊 这是怎么回事?

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