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小技巧之过滤ascii控制字符
May 14 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
php给图片加文字水印
Jul 31 PHP
SESSION存放在数据库用法实例
Aug 08 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
php倒计时出现-0情况的解决方法
Jul 28 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
phpstudy隐藏index.php的方法
Sep 21 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中变量及部分适用方法
2008/03/27 PHP
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
浅谈关于angularJs中使用$.ajax的注意点
2017/08/12 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
浅谈python import引入不同路径下的模块
2017/07/11 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
python 定时修改数据库的示例代码
2018/04/08 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
精选奢华:THE LIST
2019/09/05 全球购物
中学生学习生活的自我评价
2013/10/26 职场文书
信息技术教学反思
2014/02/12 职场文书
大学生村官承诺书
2014/03/28 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
详解Python中下划线的5种含义
2021/07/15 Python
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript