我这段代码怎么改,大侠帮忙$upload_dir="./site_data/";
$upload_bak="./site_data/bak/";$file=$_FILES['upload'];$ext = explode(".",$file['name']);
$ext = $ext[count($ext)-1];  
$filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));              
$bakfilename = $filename1."_{$uid}_{$_user}_".date("Y_m_d_H_i_s").".{$ext}";if(move_uploaded_file($file['tmp_name'],$upload_dir.$file['name']))//上传到$upload_
{
  copy($upload_dir.$file['name'], $upload_bak.$bakfilename); //复制到$upload_bak
  echo "<script>alert('OK');window.location='shangchuan.php';</script>";
}

解决方案 »

  1.   


    $upload_dir="./site_data/";
    $upload_bak="./site_data/bak/";$file=$_FILES['upload'];
    $refer = $_SERVER['HTTP_REFERER'];
    if($file['type'] != 'text/plain'){
    echo '您上传的文件类型不符,请重新上传';
    echo '<script>location.href = "'.$refer.'";</script>';exit;
    }
    $ext = explode(".",$file['name']);
    $ext = $ext[count($ext)-1];  
    $filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));              
    $bakfilename = $filename1."_{$uid}_{$_user}_".date("Y_m_d_H_i_s").".{$ext}";if(move_uploaded_file($file['tmp_name'],$upload_dir.$file['name']))//上传到$upload_
    {
      copy($upload_dir.$file['name'], $upload_bak.$bakfilename); //复制到$upload_bak
      echo "<script>alert('OK');window.location='shangchuan.php';</script>";
    }
      

  2.   


    $refer = $_SERVER['HTTP_REFERER'];
    if($file['type'] != 'text/plain'){
    echo '<script>alert("您上传的文件类型不符,请重新上传");location.href = "'.$refer.'";</script>';exit;
    }
      

  3.   

    楼上这个会有漏洞的。
    $ext
    switch($ext)
    {
      case 'txt':
            break;
      default:
          $ext='bin';
    }
      

  4.   

    我这页是模板页,你这样写,怎么分开写 <table width="400" border="0" cellspacing="1" cellpadding="1">
      <tr align="center"> 
       <td height="25" style="background-image:url(../img/left.jpg);" width="400" style="color:#FFFFFF ">文件上传</td>
      </tr>
      <tr align="center" valign="middle"> 
       <td align="center"  height="40"  bgcolor="#FFFFFF">选择上传文件:<input type="file" name="upload"  style="width:280px"></td>
      </tr>
      <tr align="center" valign="middle"> 
       <td style="background-image:url(../img/left.jpg);" height="24" width="400"> 
    <div align="center">
           <input type="submit"  value="开始上传">
        </div>
       </td>
      </tr>
     </table>
      

  5.   

    这样不正规的,真正判断类型是fiel的type,而判断后缀会被伪造
      

  6.   

    /?????????????
    <form action="ad.php" method="post" enctype="multipart/form-data">
    <table width="400" border="0" cellspacing="1" cellpadding="1">
      <tr align="center"> 
       <td height="25" style="background-image:url(../img/left.jpg);" width="400" style="color:#FFFFFF ">文件上传</td>
      </tr>
      <tr align="center" valign="middle"> 
       <td align="center"  height="40"  bgcolor="#FFFFFF">选择上传文件:<input type="file" name="upload"  style="width:280px"></td>
      </tr>
      <tr align="center" valign="middle"> 
       <td style="background-image:url(../img/left.jpg);" height="24" width="400"> 
        <div align="center">
           <input type="submit"  value="开始上传">
        </div>
       </td>
      </tr>
     </table></form>
      

  7.   

    重新设置页面编码或者将提示信息的汉字用iconv转下都行,或者用英文提示
      

  8.   

    $content = iconv("utf-8","gb2312//IGNORE",$content);
    这样怎么转
      

  9.   

    楼主最好是将文件另存在一下将html和php的文件编码统一
      

  10.   

    正常上传一个.txt文件先弹出 "ok"提示框 后,又弹出这个alert("您上传的文件类型不符,请重新上传");l
      

  11.   

    这是完整的代码require_once("lianjie.php");
    //定义存储目录
    $upload_dir="./site_data/";
    $upload_bak="./site_data/bak/";$file=$_FILES['upload'];
    $refer = $_SERVER['HTTP_REFERER'];
    if($file['type'] != 'text/plain'){
    echo '<script>alert("您上传的文件类型不符,请重新上传");location.href = "'.$refer.'";</script>';exit;
    }$ext = explode(".",$file['name']);
    $ext = $ext[count($ext)-1];  
    $filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));              
    $bakfilename = $filename1."_{$uid}_{$_user}_".date("Y_m_d_H_i_s").".{$ext}";if(move_uploaded_file($file['tmp_name'],$upload_dir.$file['name']))//上传到$upload_
    {
      copy($upload_dir.$file['name'], $upload_bak.$bakfilename); //复制到$upload_bak
      echo "<script>alert('OK');window.location='shangchuan.php';</script>";
    }
    mysql_close($connection);
      

  12.   

    if($file['name'] && $file['type'] != 'text/plain'){
    echo '<script>alert("您上传的文件类型不符,请重新上传");history.go(-1);</script>';exit;
    }