php实现文件上传的代码,版主帮忙

php实现文件上传的代码,版主帮忙

上传部分的表单代码:
     <form method="post" action="upload.php" enctype="multipart/form-data">
     <table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
      <tr>
        <td width=55 height=20 align="center"><input type="hidden" name="MAX_FILE_SIZE" value="2000000">文件: </TD>
        <td height="16">
        <input name="file" type="file"  value="浏览" >
        <input type="submit" value="上传" name="B1">
        </td>
      </tr>
     </table>
     </form>
     
表单提交upload.php

<?php

   $uploaddir = "./files/";//设置文件保存目录 注意包含/   
   $type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型
   $patch="http://127.0.0.1/test/files";//程序所在路径
   
   //获取文件后缀名函数
      function fileext($filename)
    {
        return substr(strrchr($filename, '.'), 1);
    }
   //生成随机文件名函数   
    function random($length)
    {
        $hash = 'CR-';
        $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
        $max = strlen($chars) - 1;
        mt_srand((double)microtime() * 1000000);
            for($i = 0; $i < $length; $i++)
            {
                $hash .= $chars[mt_rand(0, $max)];
            }
        return $hash;
    }

   $a=strtolower(fileext($_FILES['file']['name']));
   //判断文件类型
   if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type))
     {
        $text=implode(",",$type);
        echo "您只能上传以下类型文件: ",$text,"<br>";
     }
   //生成目标文件的文件名   
   else{
    $filename=explode(".",$_FILES['file']['name']);
        do
        {
            $filename[0]=random(10); //设置随机数长度
            $name=implode(".",$filename);
            //$name1=$name.".Mcncc";
            $uploadfile=$uploaddir.$name;
        }

   while(file_exists($uploadfile));

        if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)){
            
            if(is_uploaded_file($_FILES['file']['tmp_name']){
                //输出图片预览
                echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>";
                echo"<br><center><a href='javascript:history.go(-1)'>继续上传</a></center>";
              }
              else{
                echo "上传失败!";
              }
        }
   }

?>



点击上传后,出现以下错误:
Parse error: parse error, unexpected '{' in D:\AppServ\www\upload.php on line 57


我检查了N次,都不知道到底错在哪里,57行没有漏了“{”啊

少了个括号

以后小心检查啊

[复制到剪切板]
CODE:
<form method="post" action="upload.php" enctype="multipart/form-data">
     <
table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
      <
tr
        <
td width=55 height=20 align="center"><input type="hidden" name="MAX_FILE_SIZE" value="2000000">文件: </TD>
        <
td height="16"
        <
input name="file" type="file"  value="浏览" >
        <
input type="submit" value="上传" name="B1">
        </
td>
      </
tr>
     </
table>
     </
form>
     
表单提交upload.php

<?php

   $uploaddir 
"./files/";//设置文件保存目录 注意包含/    
   
$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型 
   
$patch="http://127.0.0.1/test/files";//程序所在路径
   
   //获取文件后缀名函数
      
function fileext($filename)
    {
        return 
substr(strrchr($filename'.'), 1);
    }
   
//生成随机文件名函数    
    
function random($length)
    {
        
$hash 'CR-';
        
$chars 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
        
$max strlen($chars) - 1;
        
mt_srand((double)microtime() * 1000000);
            for(
$i 0$i $length$i++)
            {
                
$hash .= $chars[mt_rand(0$max)];
            }
        return 
$hash;
    }

   
$a=strtolower(fileext($_FILES['file']['name']));
   
//判断文件类型
   
if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type))
     {
        
$text=implode(",",$type);
        echo 
"您只能上传以下类型文件: ",$text,"<br>";
     }
   
//生成目标文件的文件名    
   
else{
    
$filename=explode(".",$_FILES['file']['name']);
        do
        {
            
$filename[0]=random(10); //设置随机数长度
            
$name=implode(".",$filename);
            
//$name1=$name.".Mcncc";
            
$uploadfile=$uploaddir.$name;
        }

   while(
file_exists($uploadfile));

        if (
move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)){
            
            if(
is_uploaded_file($_FILES['file']['tmp_name'])){
                
//输出图片预览
                
echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>";
                echo
"<br><center><a href='javascript:history.go(-1)'>继续上传</a></center>";
              }
              else{
                echo 
"上传失败!";
              }
        }
   } 

?> ;


谢谢楼上的版主,能告诉我原代码哪一行出现缺漏

还是不行啊,还是有错误显示:
表单提交upload.php
Warning: move_uploaded_file(./files/CR-k9pHAlVRs4.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\AppServ\www\upload.php on line 61

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINNT\TEMP\php11.tmp' to './files/CR-k9pHAlVRs4.jpg' in D:\AppServ\www\upload.php on line 61


我的网站目录是我的网站目录是D:\AppServ\www
然后在www目录下建立一个文件夹test,test里面有一个files文件夹作为存放上传文件的地方

./files/CR-k9pHAlVRs4.jpg
看看files文件夹是否存在.敬告说得很清楚.没有这个文件
毕业了。。。

问题已解决,是相对路径设置错误
应该是$uploaddir = ".test/files/";//
再一次感谢两位版主

;;

if(is_uploaded_file($_FILES['file']['tmp_name'])){
你这里少了个括号

"if(is_uploaded_file($_FILES['file']['tmp_name'])){"

应该改为:“if(!is_uploaded_file($_FILES['file']['tmp_name'])){”

方能正确显示!!嘻嘻,不错的代码!!!

不错的代码.支持!!
如果有管理及删除的功能就更好了!