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 07 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
基于PHP实现的事件机制实例分析
Jun 18 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
php读取和保存base64编码的图片内容
Apr 22 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
Laravel如何使用Redis共享Session
Feb 23 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python Django连接MySQL数据库做增删改查
2013/11/07 Python
python使用cookielib库示例分享
2014/03/03 Python
Python如何判断数独是否合法
2016/09/08 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
城市创卫标语
2014/06/17 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
PHP解决高并发问题
2021/04/01 PHP
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
GO中sync包自由控制并发示例详解
2022/08/05 Golang