$sort=12;
$f_type=strtolower("sql,txt,doc,docx,pdf,swf,jpg,rar,zip,7z,iso,gif");//设置可上传的文件类型 
$file_size_max=200*1024*1024;//限制单个文件上传最大容量 
$overwrite = 0;//是否允许覆盖相同文件,1:允许,0:不允许 
$f_input="Files";//设置上传域名称
    foreach($_FILES[$f_input]["error"] as $key => $error){ 
        $up_error="no"; 
        if ($error == UPLOAD_ERR_OK){ 
            $f_name=$_FILES[$f_input]['name'][$key];//获取上传源文件名 

            $uploadfile=$uploaddir.strtolower(basename($f_name)); 
             
            $tmp_type=substr(strrchr($f_name,"."),1);//获取文件扩展名
$tmp_type=strtolower($tmp_type); 
            if(!stristr($f_type,$tmp_type)){ 
                echo "<script>alert('对不起,不能上传".$tmp_type."格式文件, ".$f_name." 文件上传失败!')</script>"; 
                $up_error="yes"; 
            } 
             
            if ($_FILES[$f_input]['size'][$key]>$file_size_max) { 

                echo "<script>alert('对不起,你上传的文件 ".$f_name." 容量为".round($_FILES[$f_input]
['size'][$key]/1024)."Kb,大于规定的".($file_size_max/1024)."Kb,上传失败!')</script>"; 
                $up_error="yes"; 
            } 
             
            if (file_exists($uploadfile)&&!$overwrite){ 
                echo "<script>alert('对不起,文件 ".$f_name." 已经存在,上传失败!')</script>"; 
                $up_error="yes"; 
            } 
             $string = 'abcdefghijklmnopgrstuvwxyz0123456789';
$rand = '';
for ($x=0;$x<12;$x++)
  $rand .= substr($string,mt_rand(0,strlen($string)-1),1);
$t=date("ymdHis").substr($gettime[0],2,6).$rand;
$attdir="./file/$teacher/";  
    if(!is_dir($attdir))   
    { my_msg('请联系管理员创建个人目录','FileUpload.htm');}
            $uploadfile=$attdir.$t.".".$tmp_type; 
            if(($up_error!="yes") and (move_uploaded_file($_FILES[$f_input]['tmp_name'][$key], $uploadfile))){                  
$_msg=$_msg.$f_name.'上传成功\n';


            } 
else{
$_msg=$_msg.$f_name.'上传失败\n';
}
        } 

    } 


// 把文件信息插入数据库

$sql="INSERT INTO attachments (filename,filesize,filetype,filepath,date) VALUES ('$f_name', '$attach['size']', '$tmp_type', '$attdir', now())";mysql_query($sql) or die("ERROR:".mysql_error()."</br>SQL=".$sql);




echo "<script>window.parent.Finish('".$_msg."');</script>";
?>去掉sql语句,程序上传正常,问题就出在sql语句上,可能是我写的value值有错误,高手帮忙指点一下;另外文件名如果重命名成时间+随机数的,那调用的时候该怎么办

解决方案 »

  1.   

    出什么错?
    觉得是sql的问题 那就打印sql语句看看就行了调用是什么意思?引用文件的路径?重命名的文件名保存在db不就好了
      

  2.   

    $sql="INSERT INTO attachments (filename,filesize,filetype,filepath,date) VALUES ('$f_name', '$attach['size']', '$tmp_type', '$attdir', now())";
    改成
    $sql="INSERT INTO attachments (filename,filesize,filetype,filepath,date) VALUES ('$f_name', '".$attach['size']."', '$tmp_type', '$attdir', now())";
    另外文件名如果重命名成时间+随机数的,那调用的时候该怎么办?
    可以在数据库中直接存:  路径+图片文件名
      

  3.   

    不显示错误啊  一直停留在上传文件  肯定是sql语句的问题  因为注释掉之后上传正常