###

  今天因为工作需要,完成了一个二维码的生成图片,并支持点击下载的

###

控制器文件,相关代码

  // 生成二维码
$url = action('Apih5\\VersionController@download', ['provider' => $request->channel]);
// 保存二维码到本地,并返回二维码
$qrcode = $this->app['version']->qrcode($url);
$dir_path = '../public/static/versionChannel/';
$fileName = $request->channel.'.png';
$qrcode = base64_decode( $qrcode);
// 保存到本地,如果不存在文件,则创建新的
$this->app['version']->saveVersionQrcode($qrcode, $dir_path, $fileName); // 保存二维码到本地,并返回二维码
$qrcode = $this->app['version']->qrcode($request->channel, $url);

后台实现下载的控制器

 <?php

 namespace App\Http\Controllers\Apih5;

 use Illuminate\Http\Request;

 use App\Http\Requests;
use App\Http\Controllers\Controller; class VersionController extends Controller
{
//版本二维码下载
public function download($provider, Request $request)
{
// 下载二维码
$contenttype = 'image/jpeg';
$dir_path = '../public/static/versionChannel/';
$fileName = $provider.'.png';
$fileurl = $dir_path.$fileName; header("Cache-control: private");
header("Content-type: $contenttype"); //设置要下载的文件类型
header("Content-Length:" . filesize($fileurl)); //设置要下载文件的文件大小
header("Content-Disposition: attachment; filename=" . urldecode($fileName)); //设置要下载文件的文件名 readfile($fileurl); }
}

方法所在文件

  /**
* 生成二维码 for apih5/VersionController
* @param [type] $id [description]
* @return [type] [description]
*/
public function qrcode($url)
{
$qrcode = new QrcodeHelper;
$qrcode = $qrcode->getVersionChannelQr($url); return $qrcode;
} /**
* 保存二维码到本地文件夹
*/
public function saveVersionQrcode($qrcodeData, $dir_path, $fileName)
{
// 判断目录是否存在,不存在则生成
if (!file_exists($dir_path) ) {
mkdir("$dir_path",0777, true);
}
$fileurl = $dir_path.$fileName;
// 保存到本地,如果不存在文件,则创建新的
file_put_contents($fileurl, $qrcodeData, FILE_USE_INCLUDE_PATH);
}

前台试图

显示二维码图片的位置

  <td>

       <a href="{{ action('Apih5\\VersionController@download',['provider' => $version->channel]) }}" >
<img width="100px" src="{{url('/static/versionChannel/'.$version->channel.'.png')}}"/>
</a>
</td>

php如何实现图片点击下载,并保存本地?-----本例子为二维码的生成图片,并支持点击下载的更多相关文章

  1. jQuery.qrcode 生成二维码,并使用 jszip、FileSaver 下载 zip 压缩包至本地。

    生成二维码 引用 jquery.qrcode.js  :连接:https://files.cnblogs.com/files/kitty-blog/jquery.qrcode.js .https:// ...

  2. android开发之集成zxing,二维码,以及扫描二维码的功能实现。带源代码下载

    package cc.jiusansec.www; import com.google.zxing.WriterException; import com.zxing.activity.Capture ...

  3. js生成二维码以及点击下载二维码

    js生成二维码 jquery.qrcode.js可以快速使用页面生成二维码.但改项目有两个小问题:1.不支持中文:2.不支持二维码中间生成图片. 支持中文的jquery-qrcode jquery.q ...

  4. js将网址转为二维码并下载图片

    将一个网址转为二维码, 下面可以添加文字, 还提供下载功能 利用的是 GitHub上面的qrcode.js 和canvas <!DOCTYPE html> <html> < ...

  5. 使用javascript生成当前博文地址的二维码图片

    前面的话 在电脑端发现一篇好的博文,想在手机上访问.这时,就必须打开手机浏览器输入长长的URL地址才行,非常不方便.如果在博客标题的后面跟一张小的图片,点击该图片后,出现一张二维码的大图,然后再通过手 ...

  6. QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 根据之前公司的产品需求,参考 barcodescanner 改的,希望能帮助到 ...

  7. 图片的base64编码通过javascript生成图片--当前URL地址的二维码应用

    前面的话 在电脑端发现一篇好的博文,想在手机上访问.这时,就必须打开手机浏览器输入长长的URL地址才行,非常不方便.如果在博客标题的后面跟一张小的图片,点击该图片后,出现一张二维码的大图,然后再通过手 ...

  8. 好推二维码如何通过应用宝微下载支持微信自动打开APP下载?

    好推二维码 官网 http://www.hotapp.cn 1. 为什么使用应用宝微下载? APP下载二维码,通过微信扫描下载的时候,微信目前只支持应用宝微下载,才能在微信里直接打开下载,否则就需要在 ...

  9. C# 利用QRCode生成二维码图片

    网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了 ...

随机推荐

  1. 开源框架.netCore DncZeus学习(四)项目升级

    今天发现开源代码从1.0.0.1升级到了1.0.1.0,主要去掉了id主键,升级办法打开DncZeus,右键Git Bash Here,输入以下命令 合并失败,因为上一节尝试修改了几个代码,解决办法 ...

  2. OZCode

    OZCode是一款辅助调试工具,调试linq很方便有点重量级,导致整个项目运行很慢,但是功能很强大. OZCode界面如下:

  3. bzoj 1531 Bank notes 多重背包/单调队列

    多重背包二进制优化终于写了一次,注意j的边界条件啊,疯狂RE(还是自己太菜了啊啊)最辣的辣鸡 #include<bits/stdc++.h> using namespace std; in ...

  4. MacOS安装Go2Shell

    1 去官网下载安装MacOS最新版本 https://zipzapmac.com/Go2Shell 2 下一步下一步安装 3 设置 打开终端设置, open -a Go2Shell --args co ...

  5. Windows IIS 使用批处理脚本自动安装与卸载

    IIS6:适用于win server 2003 :: ******************* :: * 安装 :: ******************* :Install Cls @echo. &a ...

  6. JQ中的 offsetTop 和 offset().top 的区别

    话不多说先上图: offset()的top是指元素与document的上边的距离,而不是浏览器当前窗体的上边缘,如图 document高度超过window,浏览器出现滚动条,滚动滚动条,提交按钮的of ...

  7. vue 学习笔记—Resource

    1.首先是引入  或者用npm来安装  cnpm i vue-resource --save(推荐) 3.提供的api 关于请求写法: get(){ // get请求 this.$http.get( ...

  8. Django实战(一)-----用户登录与注册系统4(表单)

    我们前面都是手工在HTML文件中编写表单form元素,然后在views.py的视图函数中接收表单中的用户数据,再编写验证代码进行验证,最后使用ORM进行数据库的增删改查.这样费时费力,整个过程比较复杂 ...

  9. Pycharm 2018 Activation code 在线激活

    1. 下载官方 pycharm https://www.jetbrains.com/pycharm/download/ 2. 点击获取激活码 点击获取激活码 2.1 打开  hosts 文件 2.2  ...

  10. java的引用

    一.值类型与引用类型 1.变量初始化 int num = 10; String str = "hello"; num是int基本类型变量,值就直接保存在变量中.str是String ...