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 相关文章推荐
第二节 对象模型 [2]
Oct 09 PHP
第三节--定义一个类
Nov 16 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
非常经典的PHP文件上传类分享
May 15 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
Yii2框架自定义类统一处理url操作示例
May 25 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
PHP微信网页授权的配置文件操作分析
May 29 PHP
深入解析PHP底层机制及相关原理
Dec 11 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中字符串与多进制转换函数的实例代码
2016/11/03 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
教大家轻松制作Bootstrap漂亮表格(table)
2016/12/13 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
2020/04/30 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
Python集合操作方法详解
2020/02/09 Python
iPython pylab模式启动方式
2020/04/24 Python
Python-split()函数实例用法讲解
2020/12/18 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
商务日语专业毕业生求职信
2013/10/26 职场文书
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
工程索赔意向书
2014/08/30 职场文书
导游词之临安白水涧
2019/11/05 职场文书
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS
Go语言安装并操作redis的go-redis库
2022/04/14 Golang
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android