刚才复制了一段增加文本框节点的JAVASCRIPT
但是现在外观上一按“再添加一张”,会添加一个新的<input text="file" name="img[]">节点
我在提交后的代码加了 echo 'count(($_FILES['img']['name']))';添加了两个文件,打印出来1,怎么没计算出来?

解决方案 »

  1.   

    echo 'count(($_FILES['img']['name']))'; ???
    你这个代码就写错了!
    所以不排除真实的代码也写错了
      

  2.   

    echo count(($_FILES['img']['name']));
      

  3.   

    大神们,不是这的错,其实我用了一个自己写的函数
    $num=count($_FILES['img']['name']);  
    _break_back($num);
    打印没问题,就是它不应该是1,我添加上传一两个文件
      

  4.   

    1. 
    <input text="file" name="img[]">
    <input type="file" name="img[]">2. 函数不要用引号包起来,变成字符串了贴你更多的代码吧
      

  5.   

    以下是我的代友码:第一部分javascript部分:用于增加新表单节点<script language="javascript" type="text/javascript">
    function AddInput(){
    var input=document.createElement('input');//创建一个input节点
    var br=document.createElement('br');//创建一个br节点
    input.setAttribute('type','file');//设置input节点type属性为file
    input.setAttribute('name','files[]');//设置input节点name属性为files[],以 数组的方式传递给服务器端
    document.inpu.appendChild(br);//把节点添加到form1表单中
    document.inpu.appendChild(input);
    }
    </script>
      

  6.   

    第二部分 表单部分 <form name="inpu" enctype="multipart/form-data" method="post" action="?action=add">
    <input type="hidden" name="uniqid" value="<?php echo $_uniqid ?>" />
    <input type="hidden"  name="max_file_size" value="1000000" />
    <dl class="simple_grey_dl" >
    <dt>通用</dt>
    <dd><span>标题</span><input type="text" name="title"  /></dd>
    <dd><span>图片</span><input type="file" name="img[]" /><a href="#" onclick="AddInput()">再上传一张</a></dd>
    <dd><span>验证码</span><input type="text" name="code"  /></dd>
    <dd><img src="identity_code.php"  id="code" name="code" /></dd>
    <dd><input type="submit" class="submit" value="发布"  /></dd>
    </dl>
    </form>
      

  7.   

    第三部分 PHP程序部分if ($_GET['action'] == 'add') {
    //为了防止恶意注册,跨站攻击
    // _check_code($_POST['code'],$_SESSION['code']);

    if (!empty($_FILES['img']['name'])){
    $fileType=array('image/jpeg','image/pjpeg','image/png','image/x-png','image/gif');//允许上传的文件类型 
    $num=count(($_FILES['img']['name']));   //计算上传文件的个数
    $_code = date('Y-m-d H:i:s');
    for ($i=0;$i<$num;$i++)
    {
       if ($_FILES['img']['name'][$i]!=''&&is_uploaded_file($_FILES['img']['tmp_name'][$i]))
       {
        if (in_array($_FILES['img']['type'][$i],$fileType))//判断文件是否是允许的类型
        {
         $_img='img/'.$_FILES['img']['name'][$i];
        move_uploaded_file($_FILES['img']['tmp_name'][$i],$_img);
    //     mysql_query("
    // INSERT INTO img
    // (imgurl,code)
    // VALUES
    // ('$_img','$_code')
    // "); 
         echo '<br/>文件上传成功!';
        } else {
         echo '<br/>不允许上传该文件类型'; 
        }
       } else {
        echo '<br/>没有上传文件';
       }
    }
    }

    include PATH.'includes/check.func.php';

    _check_uniqid($_POST['uniqid'],$_SESSION['uniqid']);

    $_n = array();
    $_n['title'] = $_POST['title'];
    $_n['discribe'] = $_POST['discribe'];
    $_n['who'] = $_POST['who'];
    $_n['telephone'] = $_POST['telephone'];
    $_n['place'] = $_POST['place'];

    mysql_query("
    INSERT INTO local
    (title,discribe,img,who,telephone,place,writer,date)
    VALUES
    ('{$_n['title']}','{$_n['discribe']}','$_code','{$_n['who']}','{$_n['telephone']}','{$_n['place']}','{$_COOKIE['mycookie']}',NOW())
    "); 
    if (mysql_affected_rows() == 1){
    _close();
    _skip('发布成功!','index.php');
    } else {
    _break_back("发布失败");
    }

    } else {
    $_SESSION['uniqid'] = $_uniqid = _sha1_uniqid();
    }
      

  8.   

    这是你初始的控件
    <input type="file" name="img[]" /> 这是你附加的控件
    input.setAttribute('name','files[]');//设置input节点name属性为files[],以 数组的方式传递给服务器端这是你处理的控件
    $num=count(($_FILES['img']['name']));   //计算上传文件的个数应该很清楚了吧?细心一点嘛