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 相关文章推荐
php Smarty模板生成html文档的方法
Apr 12 PHP
mayfish 数据入库验证代码
Apr 30 PHP
解析左右值无限分类的实现算法
Jun 20 PHP
解析php入库和出库
Jun 25 PHP
PHP英文字母大小写转换函数小结
May 03 PHP
10个简化PHP开发的工具
Dec 25 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
php 获取文件行数的方法总结
Oct 11 PHP
Laravel框架实现redis集群的方法分析
Sep 14 PHP
Laravel下生成验证码的类
Nov 15 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
Feb 27 PHP
php数组指针函数功能及用法示例
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
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
Javascript 面试题随笔
2011/03/31 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
jquery中each方法示例和常用选择器
2014/07/08 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
Python调用C语言开发的共享库方法实例
2015/03/18 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
Sanic框架路由用法实例分析
2018/07/16 Python
pandas实现导出数据的四种方式
2020/12/13 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
法国床上用品商店:La Compagnie du lit
2019/12/26 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
经理职责范文
2013/11/08 职场文书
室内拓展活动方案
2014/02/13 职场文书
少儿节目主持串词
2014/04/02 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
营业员岗位职责范本
2015/04/14 职场文书
军事博物馆观后感
2015/06/05 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python