目的是实现多图上传,并更名,记录路径<?php
if ( isset($_GET['action']) && $_GET['action'] == "save" )
{
if(@$value["error"]!=0)
  {
   echo $value["name"]."上传失败!";
   break;
  }
  else
    {
     if(isset($value["type"])!="image/jpg" && $value["type"]!="image/gif" && $value["type"]!="image/png")//
        {
         echo "文件类型不正确!";//我上传的是JPG图片,可是还是在这里报错说我的图片类型不正确
         break;//这里也报错:Fatal error: Cannot break/continue 1 level in D:\setup\xampp\htdocs\index.php on line 14
        }
        else
        {
        if(isset($vale["size"])>500)
          {
           echo "文件太大";
           break;
          }
          else
             {
              $path="upload/".time().rand(1,10).$value["name"];
               move_uploaded_file($value["tmp_name"],$path);
               echo "文件".$value["name"]."上传成功!";
             }
        }
    }
}
else
{
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<script language="javascript">
function changenum()
{
        var num;
        num=document.form1.sl.value;
        var str;
        str="";
        var i;
        for(i=0;i<num;i++)
        {
                str+="<div id='file"+i+"'><p><input type='file' name='fi"+i+"' id='fi"+i+"' />最大可上传500kb</p></div>";
        }
        document.getElementById("allfile").innerHTML=str;
}
</script>
</head><body>
<form action="?action=save" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <label></label>
  <p>
    <label></label>
    我要上传
    <label>
    <select name="sl" id="select" onchange="changenum();">
      <option value="1" selected="selected">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
    </select>
    </label>
    个文件.
  <div id="allfile">
   <div id="file0">
     <p>
       <input type="file" name="fi0" id="fi0" />
      
       最大可上传500kb  </p>
  </div>
  </div>
  <input name="MAX_FILE_SIZE" type="hidden" id="MAX_FILE_SIZE" value="5000000" />
    <label>
    <input type="submit" name="button" id="button" value="提交" />
    </label>
  </p>
</form>
</body>
</html>
<?php
}
?>

解决方案 »

  1.   

    break;//这里也报错:Fatal error: Cannot break/continue 1 level in D:\setup\xampp\htdocs\index.php on line 14上面这个break改成die了倒是不报错了。但是还是说我上传的文件类型不对
      

  2.   

    break ends execution of the current for, foreach, while, do-while or switch structure.
    怎么能用在这里呢 ,改为die(); 或者exit; 都可以判断类型应该这样:
    if(!in_array($value["type"], array("image/jpg","image/jpeg","image/gif","image/png")))
      

  3.   


    嗯,改位EXIT了,不再报错。后面判断类型的改成你说的那样后,还是报错:Notice: Undefined variable: value in D:\setup\xampp\htdocs\index.php on line 12
    文件类型不正确! ---这个报错也还是存在
      

  4.   

    $value 是什么?从哪里来的?
    从你的表单上看,你缺少
    $value = $_FILES['fi0'];
      

  5.   

    把$value = $_FILES["fi0"];加在if(@$value["error"]!=0)的前面试一下
      

  6.   

    和您楼下的说的一样,加在
    if(@$value["error"]!=0)之前了。判断类型的那句我改了一下,好像可以了。另外有个问题,这样子,如果批量上传,我想一条一条的把图片路径写入数据库字段,该怎么循环呢
      

  7.   

    弄一个循环的就可以了,给每个input配一个$value = $_FILES["ss"];ss是input的name