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 反向排序和随机排序代码
Jun 30 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 PHP
基于php split()函数的用法详解
Jun 05 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
php获取远程文件内容的函数
Nov 02 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
浅谈php的TS和NTS的区别
Mar 13 PHP
详解PHP素材图片上传、下载功能
Apr 12 PHP
PHP RabbitMQ消息列队
May 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
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
jquery实现拖动效果
2016/08/10 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
Python pandas常用函数详解
2018/02/07 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
python中的句柄操作的方法示例
2019/06/20 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
Python中的面向接口编程示例详解
2021/01/17 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
幼儿教师演讲稿
2014/05/06 职场文书
邀请函范文
2015/02/02 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
给下属加薪申请报告
2015/05/15 职场文书