PHP实现多图上传和单图上传功能


Posted in PHP onMay 17, 2018

下面一段代码给大家介绍php实现单图上传和多图上传的功能,具体代码如下所示:

/**
   * 多选图片上传
   * 
   * @version v1.0.0
   * @author 
   * @since  17-11-24
   */
  public function upload()
  {
    $file = $_FILES['file'];
    empty($file) && $this->response(201,'请选择要上传的文件');
    unset($_FILES['file']);
    $count = count($file['name']);       // 上传图片的数量
    $count > 10 && $this->response(203,'批量上传图片一次最多上传10张图片');
    $tmpFile  = [];
    $returnData = [];
    for($i=0;$i<$count;$i++)          // 循环处理图片
    {
      $tmpFile['name']   = $file['name'][$i];
      $tmpFile['type']   = $file['type'][$i];
      $tmpFile['tmp_name'] = $file['tmp_name'][$i];
      $tmpFile['error']  = $file['error'][$i];
      $tmpFile['size']   = $file['size'][$i];
      $_FILES['file_'.$i] = $tmpFile;
      // 判断是否是允许的图片类型
      $ext = substr($_FILES['file_'.$i]['name'],strrpos($_FILES['file_'.$i]['name'],'.')+1); // 上传文件后缀
      stripos('jpeg|png|bmp|jpg',$ext) === FALSE && $this->response(210,'图片格式支持 JPEG、PNG、BMP格式图片');
      $data = $this->uploadOne('file_'.$i,'jpeg|png|bmp|jpg');
      if($data['status'] == 1)
      {
        $this->response(500,'第'.($i+1).'张图片上传失败,'.$data['msg']);
      }
      $returnData[$i]['url']   = $data['url'];   // 图片路径
      $returnData[$i]['old_name'] = substr($tmpFile['name'],0,strrpos($tmpFile['name'], '.')); // 图片原名称
    }
    $this->response(200,'successful',$returnData);
  }
   /**
   * 单文件上传
   * @version v1.0.0
   * @author  
   * @since  17-11-24
   * @param  $file   上传表单name名称
   * @param  $type   上传类型
   * @param  $maxSize 上传文件限制大小(默认 10M)
   */
  private function uploadOne($filename = 'file',$type = 'jpeg|png|bmp|jpg',$maxSize = 10240)
  {
    list($width,$height)    = getimagesize($_FILES[$filename]['tmp_name']); // 获取图片的宽和高
    list($usec, $sec) = explode(" ", microtime());
    $time = $sec.substr($usec,2);                         // 秒数+微秒数
    $ext = substr($_FILES[$filename]['name'],strrpos($_FILES[$filename]['name'],'.')+1); // 上传文件后缀
    $name   = $time.'-'.$width.'*'.$height.'.'.$ext;
    $filePath = $_FILES[$filename]['tmp_name'];
    $type   = $_FILES[$filename]['type'];
    $this->load->library('Qiniu');
    $returnData['url'] = $this->qiniu->upload($name,$filePath,$type);
    $returnData['status'] = 0;
    return $returnData;
  }

总结

以上所述是小编给大家介绍的PHP实现多图上传和单图上传功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
php db类库进行数据库操作
Mar 19 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
基于PHP编程注意事项的小结
Apr 27 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
yii实现级联下拉菜单的方法
Jul 31 PHP
laravel 4安装及入门图文教程
Oct 29 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
示例详解Laravel重置密码代码重构
Aug 10 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 #PHP
PHP多维数组指定多字段排序的示例代码
May 16 #PHP
php strftime函数获取日期时间(switch用法)
May 16 #PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 #PHP
Laravel 集成 Geetest验证码的方法
May 14 #PHP
PHP 多任务秒级定时器的实现方法
May 13 #PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 #PHP
You might like
php intval的测试代码发现问题
2008/07/27 PHP
php+javascript的日历控件
2009/11/19 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP中overload与override的区别
2017/02/13 PHP
基于jquery的滚动新闻列表
2010/06/19 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
python读写ini文件示例(python读写文件)
2014/03/25 Python
判断网页编码的方法python版
2016/08/12 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
python编程线性回归代码示例
2017/12/07 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
《鞋匠的儿子》教学反思
2014/03/02 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
公证委托书标准格式
2014/09/11 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
留学推荐信英文范文
2015/03/26 职场文书