thinkPHP 图片地址问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkPHP 图片地址问题相关的知识,希望对你有一定的参考价值。
我把图片存在数据库中的地址是 /upload/images/aaa.jpg 我想在模板中调用出来后显示成 根目录/upload/images/aaa.jpg 应该要怎么弄
在公共配置文件里加个全局变量或常量,再你调用出来后再拼装下字符串。
加上你从数据库里提取出来的地址就可以了。
追问哎,这样做法不行,没那么效率。太麻烦了。就好比我用编辑器上传的图片 处理就麻烦了
追答放到公共地方,再上传的时候就把地址写好,后台和前台访问一样。我那时候就是这样做的
参考技术A 可以在数据库查询的时候,在返回值前统一加上你的根目录字符串。不过,你讲的“效率”究竟是什么意思? 参考技术B 帝景平台Maihu.biz/ 你可以看下兄弟连的视频教 参考技术C 我觉得图片地址不要存详细地址,存名字就可以了。至于路径等问题可以借助相关函数thinkphp下使用qrcode类制作二维码
<?php require_once \'./phpqrcode/phpqrcode.php\'; /* * 地址:http://phpqrcode.sourceforge.net/ 下载qrcode类 * @param string $url 要生成的链接 * @param bool $local 是否生成本地文件 * @param string $logo 中间图片地址 */ echo qrcode(\'https://www.cnblogs.com/mengor/p/8192642.html\',$local=true,$logo="./_img/20170713165304.png"); function qrcode($url,$local,$logo){ $value = $url; //二维码内容 链接 $errorCorrectionLevel = \'M\';//容错级别 $matrixPointSize = 8;//生成图片大小 if(!$local){ QRcode::png($value,false, $errorCorrectionLevel, $matrixPointSize, 2); }else{ $abs_url = \'./_img/\'; //保存的二维码路径 $qr_dir= $abs_url.microtime().\'.png\'; //保存的二维码名字 //生成二维码图片 QRcode::png($value, $qr_dir, $errorCorrectionLevel, $matrixPointSize, 2); $QR = $qr_dir;//已经生成的原始二维码图 if ($logo !== FALSE) { $QR = imagecreatefromstring(file_get_contents($QR)); $logo = imagecreatefromstring(file_get_contents($logo)); $QR_width = imagesx($QR);//二维码图片宽度 $QR_height = imagesy($QR);//二维码图片高度 $logo_width = imagesx($logo);//logo图片宽度 $logo_height = imagesy($logo);//logo图片高度 $logo_qr_width = $QR_width / 5; $scale = $logo_width/$logo_qr_width; $logo_qr_height = $logo_height/$scale; $from_width = ($QR_width - $logo_qr_width) / 2; //重新组合图片并调整大小 imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); //输出图片 $he_dir= $abs_url.microtime().\'.png\';//重组图片路径 imagepng($QR, $he_dir); return \'<img src="\'.$he_dir.\'" alt="">\'; }else{ return \'<img src="\'.$qr_dir.\'" alt="">\'; } } }
由于二维码允许有一定的容错性,一般的二维码即使在遮住部分但仍然能够解码,经常我们扫描二维码的时候扫描到甚至不到一半时就能解码扫描结果,这是因为生成器会将部分信息重复表示来提高其容错度,这就是为什么我们在二维码中间加个LOGO图片并不影响解码结果的原因。
require_once \'./phpqrcode/qrlib.php\'; /* * @param 要生成的链接 * @param 是否生成本地文件 * @param 容错级别 * @param 大小 * @param 外边距 * @param 是否在本地保存的同时打印到页面 修改 code中png源码 */ QRcode::png(\'abc\',false,QR_ECLEVEL_L,10,2,true);
以上是关于thinkPHP 图片地址问题的主要内容,如果未能解决你的问题,请参考以下文章