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 日志缩略名的创建函数代码
May 26 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
关于初学PHP时的知识积累总结
Jun 07 PHP
PHP 解决session死锁的方法
Jun 20 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
PHP5.2下preg_replace函数的问题
May 08 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
PHP数据对象PDO操作技巧小结
Sep 27 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
PHP中有关长整数的一些操作教程
Sep 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
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
php实现微信扫码支付
2017/03/26 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
Python实现图像几何变换
2015/07/06 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
python生成lmdb格式的文件实例
2018/11/08 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
德国电子商城:ComputerUniverse
2017/04/21 全球购物
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
C#笔试题
2015/07/14 面试题
校园安全广播稿
2014/02/08 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
储备店长岗位职责
2015/04/14 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS