多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP上传图片三个步骤详细分析

时间:2018-12-01 16:53:29 [来源]:郑州PHP培训学校

   PHP上传图片三个步骤详细分析

  这里详细的介绍了怎样利用PHP上传图片,文章有详细的步骤和相应的函数介绍,希望对大家有帮助。
  学习PHP时,你可能会遇到PHP上传图片问题,这里将介绍PHP上传图片问题的解决方法,在这里拿出来和大家分享一下。今天我们就开始一起学习PHP上传图片。上传图片原理:首先判断文件类型是否为图片格式,若是则上传文件,然后重命名文件(一般都是避免上传文件重名,现在基本上都是以为时间来命名),接着把文件上传到指定目录,成功上传后输出上传图片的预览。
  1.首先我们开始判断文件类型是否为图片类型用到的函数{
  strrchr:查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
  substr: 取部份字符串。
  $HTTP_POST_FILES['file']['name']:获取当前上传的文件全称。
  }
  图片类型就是“.”后面的字符(比如:一个文件名称为XXX.JPG 那么它的类型就是“.”后面的JPG)。 我们可以用PHP中的函数来截取上传者文件名字的。我们来写个获取文件类型的函数<?
  function type()
  {
  return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1);}
  ?>
  2.若是则上传文件,然后重命名文件用到的函数{
  strtolower:把字符串的字母全部转换为小写字母.
  in_array: 函数在数组中搜索给定的值。
  implode:函数把数组元素组合为一个字符串
  random:随机生成的数
  $_FILES['userfile']['name']:上传文件名称
  $uploaddir:自己定义的变量。比如在同一个文件夹里面,你想把上传的文件放到这个文件夹的FILE文件夹下,你可以这样定义$uploaddir="./file/";注意写法}
  利用文件函数实现PHP文件上传案例分析
  老鸟谈PHP上传文件discuz实现
  演示实现PHP上传文件代码
  实战PHP上传文件代码演示
  经验总结:示例PHP上传文件代码
  这边会出现很多问题,第一先写一个能上传类型的数组。第二判断文件合法性。第三给文件重名。*(这边判断文件大小就不写了)先定义允许上传文件的类型数组:$type=array("jpg","gif","bmp","jpeg","png");第二用一个IF。。else。。写一个判断文件合法性的控制流语句。
  if(!in_arry(strtolower(type()),$type))//如果不存在能上传的类型{
  $text=implode('.',$type);
  echo "您只能上传以下类型文件: ",$text,"<br>";}
  下面就是给他们重新命名了,
  else
  {
  $filename=explode(".",$_FILES['userfile']['name']);//把上传的文件名以“.”好为准做一个数组。
  $time=date("m-d-H-i-s");//去当前上传的时间$filename[0]=$time;//取文件名t替换
  name=implode(".",$filename); //上传后的文件名$uploadfile=$uploaddir.$name;//上传后的文件名地址}
  3.最后把文件上传到指定目录,成功上传后输出上传图片的预览用到的函数{
  move_uploaded_file:执行上传文件
  }
  if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
  echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>";echo"<br><center><a href='javascrīpt:history.go(-1)'>继续上传</a></center>";}
  else
  {
  echo"传输失败!";
  }
  这样就OK 一个简单的上传图片的程序写完。假如你还想完善你的功能你可以自己添加!
  PHP上传文件代码
  <html><head>
  <title>上载文件表单</title></head>
  <body>
  <form enctype="multipart/form-data" action="" method="post">
  请选择文件: <br>
  <input name="upload_file" type="file"><br>
  <input type="submit" value="上传文件">
  </form>
  </body>
  </html>
  <?
  $upload_file=$_FILES['upload_file']['tmp_name'];$upload_file_name=$_FILES['upload_file']['name'];if($upload_file){
  $file_size_max = 1000*1000;// 1M限制文件上传最大容量(bytes)$store_dir = "d:/";// 上传文件的储存位置
  $accept_overwrite = 1;//是否允许覆盖相同文件// 检查文件大小
  if ($upload_file_size > $file_size_max) {echo "对不起,你的文件容量大于规定";
  exit;
  }
  // 检查读写文件
  if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {Echo "存在相同文件名的文件";
  exit;
  }
  //复制文件到指定目录
  if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {echo "复制文件失败";
  exit;
  }
  }
  Echo "<p>你上传了文件:";
  echo$_FILES['upload_file']['name'];
  echo "<br>";
  //客户端机器文件的原名称。
  Echo "文件的 MIME 类型为:";
  echo $_FILES['upload_file']['type'];
  //文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
  echo "<br>";
  Echo "上传文件大小:";
  echo $_FILES['upload_file']['size'];
  //已上传文件的大小,单位为字节。
  echo "<br>";
  Echo "文件上传后被临时储存为:";
  echo $_FILES['upload_file']['tmp_name'];
  //文件被上传后在服务端储存的临时文件名。
  echo "<br>";
  $Erroe=$_FILES['upload_file']['error'];
  switch($Erroe){
  case 0:
  Echo "上传成功"; break;
  case 1:
  Echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值."; break;case 2:
  Echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。";break;case 3:
  Echo "文件只有部分被上传";break;
  case 4:
  Echo "没有文件被上传";break;
  }
  ?>
  以上就是详细的PHP上传文件代码,希望对大家有帮助。

上一篇:PHP批量上传图片的具体实现方式

下一篇:php设计模式之命令模式的应用详解