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 相关文章推荐
递归列出所有文件和目录
Oct 09 PHP
php 缓存函数代码
Aug 27 PHP
php_xmlhttp 乱码问题解决方法
Aug 07 PHP
简单的PHP缓存设计实现代码
Sep 30 PHP
ThinkPHP3.1基础知识快速入门
Jun 19 PHP
php验证手机号码
Nov 11 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
PHP中字符串长度的截取用法示例
Jan 12 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
Apr 19 PHP
详解php命令注入攻击
Apr 06 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 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闭包函数详解
2016/02/13 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
Python实现抓取网页并且解析的实例
2014/09/20 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
演讲比赛策划方案
2014/06/11 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python