PHP 图片上传实现代码 带详细注释

复制代码 代码如下:

  <?php

  //用户上传图片处理文件

  if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 100000)){ //控制允许上传的图片类型,最后的100000为允许的图片大小

  if ($_FILES["file"]["error"] > 0){

  echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; //出错返回

  }else{

  /* //这是上传图片的信息,去掉前后的注释就可以看到效果.

  echo "Upload: " . $_FILES["file"]["name"] . "<br />";

  echo "Type: " . $_FILES["file"]["type"] . "<br />";

  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";

  echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; */

  if (file_exists("userupload/" . $_FILES["file"]["name"])){

  echo $_FILES["file"]["name"] . " already exists. ";

  }else{

  move_uploaded_file($_FILES["file"]["tmp_name"],"userupload/" . $_FILES["file"]["name"]);

  }

  $date=date('Ymdhis'); //得到当前时间,如;20070705163148

  $fileName=$_FILES['file']['name']; //得到上传文件的名字

  $name=explode('.',$fileName); //将文件名以'.'分割得到后缀名,得到一个数组

  $newPath=$date.'.'.$name[1]; //得到一个新的文件为'20070705163148.jpg',即新的路径

  $oldPath=$_FILES['file']['tmp_name']; //临时文件夹,即以前的路径

  rename("userupload/".$fileName,"userupload/".$newPath);

  //这里可以写你的SQL语句,图片的地址是 "userupload/".$newPath

  ?>

  <script type="text/javascript">alert('图片上传成功!!');</script>

  <?php

  }

  }else{

  echo "Invalid file"; //图片类型错误或者过大

  }

  ?>