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实现ODBC数据分页显示一例
Oct 09 PHP
PHP6 先修班 JSON实例代码
Aug 23 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
PHP判断表达式中括号是否匹配的简单实例
Oct 22 PHP
php base64 编码与解码实例代码
Mar 21 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
Jun 12 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
PHP设计模式之工厂模式定义与用法详解
Apr 03 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查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP 手机归属地查询 api
2010/02/08 PHP
php5.3 废弃函数小结
2010/05/16 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
Python简单I/O操作示例
2019/03/18 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
python的flask框架难学吗
2020/07/31 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
什么是接口(Interface)?
2013/02/01 面试题
中专生自我鉴定范文
2013/12/19 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
董事长致辞
2015/07/29 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android