心得体会
一:文件重命名不能有/\:*?....等字符
二:文件格式对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg
三:是讲字符串备份数据库
<html>
<title>文件上传</title>
<head>
</head>
<body>
<div style="width: 500px; text-align:left;"><?php
//上传文件表单
if($_POST['submit'] !="yes")
{
//显示表单
?>   
<form action=""  method="POST"  enctype="multipart/form-data" >
<input type="hidden"  name="submit"  value="yes" />
                       请选择您要上传的文件:<br/><br/>
                    (注意文件上传大小不要超过5MB,文件格式为一些常规格式):<br/><br/>
<input type="file" name="file" /><br/><br/>
<input type="submit"   value="提交"  />
</form> 
<?php    
}   //开始上传文件功能
if($_POST['submit']=="yes")
{
 //由文件上传导致的错误,终止程序执行 ,重新上传
 if ($_FILES['file']['error'] > 0) 
    {echo "错误代码 " . $_FILES['file']['error'].":  ";} //要求一:文件长度要大于0
 try
 {
  if($_FILES['file']['size']==0)
     {
      $goodtogo=false;
      throw new exception("对不起,您没有选择上传的文件.<br/>");  
     }
 }
 catch(exception $e)
   { 
      echo $e->getmessage();
      ?> 
      <br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
      <?php
      return;
      }//要求二:上传文件大小限制5MB 
 try
 {
    if($_FILES['file']['size']>5000000)
      {
       $goodtogo=false;
       throw new exception("对不起,您上传的文件大小为".intval($_FILES['file']['size']/1000)."KB。超过限制大小");
      }
 }
 catch(exception $e)
    {
     echo $e->getmessage();
     ?> 
     <br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
     <?php
     return;
    }//要求三:允许上传的文件类型,需要是要修改。对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg
$allow_upload_type=array(
'image/pjpeg',
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'tif' => 'image/tiff',
'tif' => 'image/tiff',
'txt' => 'text/plain',
'xml' => 'text/xml',
'mp3' => 'audio/mpeg',
'mpeg' => 'video/mpeg',
'mov' => 'video/quicktime',
'zip' => 'application/zip',
'rar' => 'application/x-rar-compressed',
'sit' => 'application/x-stuffit',
'bin' => 'application/x-macbinary',
'exe' => 'application/x-msdownload',
'doc' => 'application/msword',
'rtf' => 'application/rtf',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
);
  try
  {
    if(!in_array($_FILES['file']['type'] ,$allow_upload_type))
      {
          $goodtogo=false;
            throw new exception("对不起,文件类型限制,你所上传文件类型".$_FILES['file']['type']."<br/>");
      }
  }catch (exception $e)
   {
      echo $e->getmessage();
      ?> 
      <br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
      <?php
      return;
   }//通过上传,显示上传文件信息
 $strname= $_FILES['file']['name'];//文件重命名之前保留文件名以备存在数据库中
 echo "<br/>您上传文件的名称: " . $_FILES['file']['name']."<br/>";
 echo "<br/>您上传文件的类型: " . $_FILES['file']['type'] . "<br />";
 echo "<br/>您上传文件的大小: " . ($_FILES['file']['size'] / 1024) . " Kb<br />";
 echo "<br/>您上传文件保存在服务器上的显示名称: " . $_FILES['file']['tmp_name'] . "<br />";//移动上传文件到uploads目录
 if(file_exists($newname ))
   {echo "<br/>您上传文件的已经在本地保存过";}
 else
   {
    //文件以时间戳 重命名     
    date_default_timezone_set('PRC');//中国时区
    $D=date("YmdHis");//时间戳
    $filetype=substr(strrchr($_FILES['file']['name'],"."),1);//获取文件后缀名
    $newname=$D.".".$filetype; //文件新名字
    //echo "<br/>新文件名:".$newname;
 
     move_uploaded_file($_FILES['file']['tmp_name'], "uploads/".$newname);//移动文件到指定文件夹uploads;
     echo "<br/>上传文件本地保存路径:"."./uploads/".$newname;
         
   }
   
   //连接到数据库
$con = mysql_connect("localhost:3306","root","");
if (!$con)
    {die('连接数据库失败: ' . mysql_error()); }
mysql_select_db("test", $con);
//添加数据
$strpath = "../uploads/".$newname;
$sql =
 "INSERT INTO Files( name,    time,   path) 
  VALUES('".$strname."', '".$D."', '".$strpath."' )
 ";
$result=mysql_query($sql);
if($result)
 {echo "<br/><br/>文件备份到数据库成功";}
else 
 {echo"<br/><br/>文件备份到数据库失败";}
mysql_close($con);
?>
<br/><a href="Javascript:history.back(-1)"><br/>文件上传成功,需要再次上传请点击这里<br/></a><?php
header('refresh:5; url=http:file_dir.php');
echo"<br/><br/>否则,页面将  5秒后 自动跳转到目录页面";
}
?>
</div>
</body>
</html>还很不足php数据库file