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提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
ucenter通信原理分析
Jan 09 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 PHP
thinkphp5框架路由原理与用法详解
Feb 11 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
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
python如何实现内容写在图片上
2018/03/23 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
大学毕业后的十年规划
2014/01/07 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
三八妇女节活动总结
2014/05/04 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
2014年财政所工作总结
2014/11/22 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
python代码实现扫码关注公众号登录的实战
2021/11/01 Python