<?php
function getname($exname){
$dir="upimages/";
$i=1;
if(!is_dir($dir)){
mkdir($dir);
}
while(true){
if(!is_file($dir.$i.".".$exname)){
$name=$i.".".$exname;
break;
}
$i++;
}
return $dir.$name;
}
//$exname=strtolower(substr($FILES[file][name],(strrpos($FILES[file][name],'.')+1)));
//$uploadfile=getname($exname);
//move_uploaded_file($FILES[file][name],$uploadfile);if($_POST["btn"]=="提交"){
$tpmc=htmlspecialchars($tpmc); //讲名称中的特殊字符转换成Html格式
$tpmc=str_replace("\n","<br>",$tpmc); //讲名称中的回车以自动换行符取代
$tpmc=str_replace("","&nbsp;",$tpmc); //将名称中的空格以“&nbsp;”代替
$author=$_SESSION[username];
$scsj=date("Y-m-d"); //设置上传时间。
$profix=array(".xls"); //设置允许上传的文件格式
$f_name=$_FILES[file][name]; //取得上传的文件名
$pro_name=substr($f_name,strrpos($f_name,".")); //取得上传文件名的后缀。
//判断上传的文件类型是否呗允许。
if(!in_array(strtolower($pro_name),$profix)){
echo "<script>alert('文件格式不对。');history.go(-1)</script>";
exit();
}
//判断上传文件的大小
if($_FILES[file][size]>500000){
echo "<script>alert('文件大小不对。');history.go(-1)</script>";
exit();
}else{
$fp=fopen($file,"r"); //只读的方式打开。
//$file=addslashes(fread($fp,filesize($file))); //将文件中的引号加上反斜线。
//$query="insert into tb_tpsc(tpmc,file,author,scsj) values ('$tpmc','$file','$author','$scsj')";
//$result=mysql_query($query);
//echo "<meta http-equiv=\"refresh\" content=\"1;url=test.php\">成功。";
$exname=strtolower(substr($f_name,(strrpos($f_name,'.')+1)));
  $uploadfile=getname($exname);
if(move_uploaded_file($f_name,$uploadfile)){
echo "<script>alert('文件。')</script>";
exit();
}else{
echo "<script>alert('错')</script>";
}
}}
?>
  我看来看去 没发现错啊...  囧的~~~~  各位高手看看...

解决方案 »

  1.   

    echo $_FILES['file']['error'];
    看看是几
      

  2.   

    推荐一个上传类,PHP多文件上传类推荐
      

  3.   

    ...
       if($_FILES[file][size]>500000){
            echo "<script>alert('文件大小不对。');history.go(-1)</script>";
            exit();
        }else{
      echo '===='; //这里加上输出,看看有没有到达该分支
      

  4.   

    原来是  move_uploaded_file($f_name,$uploadfile) 中的  $f_name的值错了~