/**
* 图片地址
* @param $file
*/
function download_file($file)
{
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false);
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile($file);
exit();
}
$img = \Yii::$app->getRequest()->get('img');//获取img的地址
return download_file($img);//调用下载方法,直接就下载了
2.图片以页面地址展示在页面中,好处是:当图片不存在时不会报错
public function actionQrCode()
{
try {
header("Content-Type: image/jpeg;text/html; charset=utf-8");
\Yii::$app->response->data = \Yii::$app->openPlatform->miniProgram($this->app->wx_app_id)->app_code->getUnlimit('downloads');
return \Yii::$app->response->send();
} catch (\Exception $exception) {
}
}
页面调用:
<img src="<?= Url::toRoute(['/manage/setting/qr-code', 'appId'=>$this->context->appId]) ?>" alt="" width="50" height="50">
3.根据地址生成二维码和复制地址链接
<td align="center" class="qr-code" data-url = "http://xiaoming.com?p_id=1">
<div class="copy-url" data-clipboard-text="http://xiaoming.com?p_id=1">复制链接</div>
</td>
(1)生成二维码
a.页面引入jquery.qrcode.min.js
b.js中的写法
$('.qr-code').each(function () {
var url = $(this).data('url')//获取要生成二维码的地址
$(this).qrcode({
width: 60, //生成的二维码的宽
height: 60, //生成的二维码的高
text: url
})
})
(2)复制地址
a.页面引入
b.js中的写法
var clipboard = new ClipboardJS('.copy-url');
clipboard.on('success', function (e) {
alert("复制成功");
});
clipboard.on('error', function (e) {
alert("复制失败");
});