PHP中upload.php的具体使用方法

发布时间:2021-08-11 21:25:18 作者:chen
来源:亿速云 阅读:153

这篇文章主要介绍“PHP中upload.php的具体使用方法”,在日常操作中,相信很多人在PHP中upload.php的具体使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中upload.php的具体使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

我们今天为大家带来的是关于PHP上传类upload.php 的具体用法,希望广大读者朋友能够通过本文所介绍的内容得到帮助,增加我们的知识点。

具体代码如下:

<?php  /**   * 我的文件上传类   *   * 未完成的功能:   * 1.对目标目录是否存在的判断   * 2.如果上传时出现重名,自动重命名   *    * @author M.Q. <[url]www.mengqi.net[/url]>  */  class upload  {      /**       * PHP上传类upload.php上传文件的信息,此值由构造函数取得,如果上传文件失败或出错或未上传,则此值为false       *       * @var array       */      private $file = false;                  /**       * 构造函数:取得上传文件的信息       *        * 如果在上传文件的工程中发生错误,那么出错的文件不会放在结果中返回,结果中的文件都是可用的       *       * @param string $tag form表单中<input>标签中name属性的值,例<input name="p" type="file">      *        * 例1,上传单个文件:       * <input name="upfile" type="file">      *        * 例2,上传多个文件:       * <input name="upfile[]" type="file">      * <input name="upfile[]" type="file">      *        * 结果(保存在$file变量中)如下:       *        * array(       * [0] => array(       *      'name'      => 'abc.txt'       *      'type'      => 'text/plain’       *      'tmp_name'  => '/tmp/phpgxecCb'       *      'error'     => 0       *      'size'      => 62       *      )       * [1] => array(       *      'name'      => 'abc.txt'       *      'type'      => 'text/plain’       *      'tmp_name'  => '/tmp/phpgxecCb'       *      'error'     => 0       *      'size'      => 62       *      )       * )       */      public function __construct($tag)      {          $file = $_FILES[$tag];                           if (!isset($file) || empty($file))           {              return; //没有上传文件          }                    $num = count($file['name']); //PHP上传类upload.php上传文件的个数                    $data = array(); //用来保存上传文件的信息的数组           //上传了多个文件          if ($num > 1)          {              for($i = 0; $i < $num; $i++)              {                  $d = array();                  $d['name']       = $file['name'][$i];                  $d['type']       = $file['type'][$i];                  $d['tmp_name']   = $file['tmp_name'][$i];                  $d['error']      = $file['error'][$i];                  $d['size']       = $file['size'][$i];                                    if ($d['error'] == 0)                  {                      $data[] = $d;                  }                  else                   {                      @unlink($d['tmp_name']);                  }              }          }          //只上传了一个文件          else           {              $d = array();              $d['name']       = $file['name'];              $d['type']       = $file['type'];              $d['tmp_name']   = $file['tmp_name'];              $d['error']      = $file['error'];              $d['size']       = $file['size'];                            if ($d['error'] == 0)              {                  $data[] = $d;              }              else               {                  @unlink($d['tmp_name']);              }          }                    if (empty($data)) return;                    $this -> file = $data; //保存上传文件的信息      }            /**       * 将上传的文件从临时文件夹移动到目标路径       *       * @param array $src 文件信息数组,是$file数组的其中一个元素(仍然是数组)       * @param string $destpath 上传的目标路径       * @param string $filename 上传后的文件名,如果为空,则使用上传时的文件名       * @return bool       */      public function save($src, $destpath, $filename = null)      {          $srcTName = $src['tmp_name']; //原始上传文件的临时文件名          $srcFName = $src['name'];     //原始文件名                    //如果$filename参数为空,则使用上传时的文件名          if (empty($filename))          {              $filename = $srcFName;          }                    //$dest是文件最终要复制到的路径和文件名          if (empty($destpath))          {              $dest = $filename;          }          else           {              //修正路径中的斜杠,将末尾的\修改为/,如果末尾不是\也不是/,则给末尾添加一个/              $pathend = $destpath[strlen($destpath) - 1]; //上传的目标路径的***一个字符              if ($pathend == '\\')              {                  $dest = substr_replace($destpath, '/', strlen($destpath)-1).$filename;              }              else if ($pathend != '/')              {                  $dest = $destpath.'/'.$filename;              }              else               {                  $dest = $destpath.$filename;              }          }                      //上传文件成功          if (@move_uploaded_file($srcTName, $dest))          {                            return true;           }          else           {              return false;          }      }            /**       * 取得上传文件的信息       *       * @return array       */      public function getFileInfo()      {          return $this->file;      }  }    $a = new upload('upfile');   $fileinfo = $a -> getFileInfo();  if ($fileinfo == false)  {      echo '没有上传文件!';      exit;  }   for($i = 0; $i < count($fileinfo); $i++)  {      echo '正在上传 '.$fileinfo[$i]['name'].' ';      if ($a -> save($fileinfo[$i], 'upload')) echo '完毕';      else echo '失败';      echo '<br>';  }  ?>

到此,关于“PHP中upload.php的具体使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. Nodejs中的require函数的具体使用方法
  2. golang中之strconv包的具体使用方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:PHP及PDO的配置方法

下一篇:PHP5接口和抽象类的语法介绍

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》