php二维码生成以及下载实现


Posted in PHP onSeptember 28, 2017

本文实例为大家分享了php二维码生成以及下载的具体代码,供大家参考,具体内容如下

<?php
 
//引入phpqrcode库文件
define('IN_ECS', true);
 
require(dirname(__FILE__) . '/includes/init.php');
include('includes/phpqrcode.php');
 
// 二维码数据
$data = 'http://www.baidu.com';
$filename = 'shopEwm/'.'baidu.png';
 
//down_file('baidu.png',BASE_PATH);
setShopEwm($data,$filename);
 
//生成二维码图片
function setShopEwm($data,$filename){
// 纠错级别:L、M、Q、H
 
  $errorCorrectionLevel = 'L';
  // 点的大小:1到10
  $matrixPointSize = 4;
  //创建一个二维码文件
  QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
  //输入二维码到浏览器
  //QRcode::png($data);
}
//下载二维码图片
function down_file($file_name){
  $file_sub_dir = str_replace('\\','/',realpath(dirname(__FILE__).'/'))."/shopEwm/";
  //原因 php文件函数,比较古老,需要对中文转码 gb2312
  $file_name=iconv("utf-8","gb2312",$file_name);
 
  //绝对路径
  $file_path=$file_sub_dir.$file_name;
  //1.打开文件
  if(!file_exists($file_path)){
    echo "文件不存在!";
    return ;
  }
 
  $fp=fopen($file_path,"r");
  //2.处理文件
  //获取下载文件的大小
  $file_size=filesize($file_path);
 
  /* if($file_size>30){
 
  echo "<script language='javascript'>window.alert('过大')</script>";
  return ;
  } */
 
  //返回的文件
  header("Content-type: application/octet-stream");
  //按照字节大小返回
  header("Accept-Ranges: bytes");
  //返回文件大小
  header("Accept-Length: $file_size");
  //这里客户端的弹出对话框,对应的文件名
  header("Content-Disposition: attachment; filename=".$file_name);
 
  //向客户端回送数据
 
  $buffer=1024;
  //为了下载的安全,我们最好做一个文件字节读取计数器
  $file_count=0;
  //这句话用于判断文件是否结束
  while(!feof($fp) && ($file_size-$file_count>0) ){
    $file_data=fread($fp,$buffer);
    //统计读了多少个字节
    $file_count+=$buffer;
    //把部分数据回送给浏览器;
    echo $file_data;
  }
 
  //关闭文件
  fclose($fp);
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
PHP与SQL注入攻击[一]
Apr 17 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 PHP
php创建session的方法实例详解
Jan 27 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php发送邮件的问题详解
Jun 22 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
PHP反射机制原理与用法详解
Feb 15 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
PHP实现验证码校验功能
Nov 16 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 #PHP
PHP面向对象多态性实现方法简单示例
Sep 27 #PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 #PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 #PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 #PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 #PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 #PHP
You might like
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
php header示例代码(推荐)
2010/09/08 PHP
在PHP中使用curl_init函数的说明
2010/11/02 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
vue观察模式浅析
2018/09/25 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
如何开启linux的ssh服务
2015/02/14 面试题
避暑山庄导游词
2015/02/04 职场文书
收入证明怎么写
2015/06/12 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
浅析JavaScript中的变量提升
2022/06/01 Javascript