php如何实现图片点击下载,并保存本地?-----本例子为二维码的生成图片,并支持点击下载
###
今天因为工作需要,完成了一个二维码的生成图片,并支持点击下载的
###
控制器文件,相关代码
// 生成二维码
$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如何实现图片点击下载,并保存本地?-----本例子为二维码的生成图片,并支持点击下载的更多相关文章
- jQuery.qrcode 生成二维码,并使用 jszip、FileSaver 下载 zip 压缩包至本地。
生成二维码 引用 jquery.qrcode.js :连接:https://files.cnblogs.com/files/kitty-blog/jquery.qrcode.js .https:// ...
- android开发之集成zxing,二维码,以及扫描二维码的功能实现。带源代码下载
package cc.jiusansec.www; import com.google.zxing.WriterException; import com.zxing.activity.Capture ...
- js生成二维码以及点击下载二维码
js生成二维码 jquery.qrcode.js可以快速使用页面生成二维码.但改项目有两个小问题:1.不支持中文:2.不支持二维码中间生成图片. 支持中文的jquery-qrcode jquery.q ...
- js将网址转为二维码并下载图片
将一个网址转为二维码, 下面可以添加文字, 还提供下载功能 利用的是 GitHub上面的qrcode.js 和canvas <!DOCTYPE html> <html> < ...
- 使用javascript生成当前博文地址的二维码图片
前面的话 在电脑端发现一篇好的博文,想在手机上访问.这时,就必须打开手机浏览器输入长长的URL地址才行,非常不方便.如果在博客标题的后面跟一张小的图片,点击该图片后,出现一张二维码的大图,然后再通过手 ...
- QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 根据之前公司的产品需求,参考 barcodescanner 改的,希望能帮助到 ...
- 图片的base64编码通过javascript生成图片--当前URL地址的二维码应用
前面的话 在电脑端发现一篇好的博文,想在手机上访问.这时,就必须打开手机浏览器输入长长的URL地址才行,非常不方便.如果在博客标题的后面跟一张小的图片,点击该图片后,出现一张二维码的大图,然后再通过手 ...
- 好推二维码如何通过应用宝微下载支持微信自动打开APP下载?
好推二维码 官网 http://www.hotapp.cn 1. 为什么使用应用宝微下载? APP下载二维码,通过微信扫描下载的时候,微信目前只支持应用宝微下载,才能在微信里直接打开下载,否则就需要在 ...
- C# 利用QRCode生成二维码图片
网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了 ...
随机推荐
- 从零开始搭建高性能高可用Tomcat服务器
目标: Tomcat+Nginx+Memcached Ubuntu 16.04 64位测试通过 动静分类.负载均衡.集群.Javolution序列化.高性能.高可用 配置环境(目前均为最新稳定版): ...
- 如何在Mac上搭建自己的服务器——Nginx
1.安装Homebrew 打开终端,输入: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ ...
- verilog仿真文件编写
verilog仿真文件大概框架: ·timescale 1ns/1ps //但需要时间 module xxx_tb(); //仿真文件不需要输入和输出, intput clk; ] xx; //根据需 ...
- TypeScript 快速学习
https://learnxinyminutes.com/docs/zh-cn/typescript-cn/ https://www.tslang.cn/docs/handbook/basic-typ ...
- IE9浏览器打开开发者工具代码正常执行,反之报错
1.can i use console IE9开发者工具打开时支持console对象,否则报错. 2.由于出现错误 80020101 而导致此项操作无法完成 测试代码 <!DOCTYPE ht ...
- java 基础 整数类型
1.Java有四种整数类型:byte.short.int和long. 2.Java默认整数计算的结果是int类型. 3.整数的字面量是int类型. 4.若字面量超过int类型的最大值,则字面量是lon ...
- 【blog】SpringBoot普通类中如何获取其他bean例如Service、Dao
自己写工具类 工具类 import org.springframework.beans.BeansException; import org.springframework.context.Appli ...
- 如何解压RPM包
有时我们需要RPM包中的某个文件,如何解压RPM包呢? RPM包括是使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示: rpm2cpio xxx.rpm | cpio -div 解压了 ...
- Java概念(一)多态
多态是一个行为具有不同的形式的能力: 多态是同一个接口,使用不同的实例执行不同操作 一.多态实现方式: 方式一.重写: 方式二.接口: 方式三.抽象类和抽象方法:
- Spring Bean自动检测
1-自动检测bean 需要用到<context:component-scan> 注意:a) 需要include进来xmlns:context命名空间:base-package指的是我们要扫 ...