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就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了 ...
随机推荐
- 微信小程序开发(6) SSL证书及HTTPS服务器
1. 域名 在万网购买,略 2. 云服务器 阿里云购买,略 3. 安装lnmp 使用lnmp.org程序,略 4. 申请证书 阿里云-管理控制台-安全(云盾)-证书服务-购买证书证书类型: 免费型DV ...
- 获取当前div以外所有部分
$("功能区域的id").click(function(e){ $(this).show(); e.stopPropagation();//阻止冒泡 }); $("父类区 ...
- Coursera, Deep Learning 5, Sequence Models, week1 Recurrent Neural Networks
有哪些sequence model Notation: RNN - Recurrent Neural Network 传统NN 在解决sequence input 时有什么问题? RNN就没有上面的问 ...
- Ubuntu、Windows输入命令appium-doctor提示未找到命令
输入命令:appium-doctor时,一直报错,提示“未找到命令”,但是输入命令:appium -v能够正确输出我安装版本,这是怎么回事呢? 原来appiu-doctor在1.5.3版本之后没有了需 ...
- firefox 播放h5爱奇艺视频
先安装 violentmonkey 扩展(https://addons.mozilla.org/zh-CN/firefox/addon/violentmonkey/), 在安装这个脚本 https:/ ...
- 实现两线程的同步一(wait/notify)
1.使用Object的wait和notify public class WaitAndNotifyDemo { public static void main(String[] args) throw ...
- Codeforces891C(892E)
传送门:here 简述题意: ...
- 单片机AT和STC区别
http://www.21ic.com/jichuzhishi/datasheet/AT89C51/data/192017.html
- Spring 源码分析 spring-core 篇
先来看下 spring-core 的包结构 总共有6个模块,分别是 asm.cglib.core.lang.objenesis.util asm包: 用来操作字节码,动态生成类或者增强既有类的功能.主 ...
- Python Django CBV下的通用视图函数
ListView TemplateView DetailView 之前的代码实例基本上都是基于FBV的模式来撰写的,好处么,当然就是简单粗暴..正如: def index(request): retu ...