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就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了 ...
随机推荐
- nohup命令执行退出后进程退出
nohup命令常常用于让进程在后台执行.但是如果仅仅是执行: nohup command & 之后直接关闭终端的话,会发现之前已经启动进程也会退出.解决办法:nohup command &am ...
- Android设置shape后改变颜色
如下,可能多个btn的设置同一个shape,如果单独改变btn颜色,可以用如下代码 GradientDrawable btnPreDrawable = (GradientDrawable) btnTe ...
- 通配符 Globbing赏析
什么是 Globing? https://www.techopedia.com/definition/14392/globbing Definition - What does Globbing ...
- EL11个内置对象
EL是JSP内置的表达式语言 JSP2.0开始,让再使用Java脚本,而是使用EL表达式和动态标签来代替Java脚本 EL替代的是<%=... %>,也就是说EL只能做输出 EL可以输出的 ...
- luogu 1640 连续攻击游戏
二分图匹配,将需要进行的编号(1-10000)和物件进行匹配,而非编号之间,编号对应物品 #include<bits/stdc++.h> using namespace std; ; ; ...
- mybatis-configxml样板
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC & ...
- 开发mis系统需要的技术
一.b/s架构 b/s架构:就broser/server,浏览器/服务器的说法.服务器端要运行tomcat,提供链接数据库服务供java代码读写数据,这个可以在eclipse中配置运行.浏览器则解释j ...
- 第19月第17天 uitextview 文本垂直居中 uiimage中间不拉伸
1. open class VericalCenteringScrollView: UIScrollView { override open var contentOffset: CGPoint { ...
- windows Apache 环境下配置支持HTTPS的SSL证书
windows Apache 环境下配置支持HTTPS的SSL证书 1.准备工作 1)在设置Apache + SSL之前, 需要做: 安装Apache, 下载安装Apache时请下载带有SSL版本的A ...
- 【jquery隐藏、显示事件and提示callback】【淡入淡出fadeToggle】【滑入滑出slideToggle】【动画animate】【停止动画stop】
1.jquery隐藏and显示事件 $("p").hide(); //隐藏事件$("p").hide(1000); //1秒内缓慢隐藏$(" ...