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 相关文章推荐
Win2000+Apache+MySql+PHP4+PERL安装使用小结
Oct 09 PHP
PHP 数组实例说明
Aug 18 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
PHP基础之运算符的使用方法
Apr 28 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
调整PHP的性能
Oct 30 PHP
PHP实现根据设备类型自动跳转相应页面的方法
Jul 24 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
Mar 29 PHP
PHP快速推送微信模板消息
Apr 14 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 26 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正则替换处理HTML页面的方法
2015/06/17 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
jQuery入门知识简介
2010/03/04 Javascript
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
毕业生自我鉴定
2013/12/04 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
售后服务承诺书
2014/03/26 职场文书
网站客服岗位职责
2014/04/05 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
病房管理制度范本
2015/08/06 职场文书
python实现监听键盘
2021/04/26 Python