图片base64格式使用JSON(坑)返回 会被转义 thinkphp3.2
使用thinkphp3.2做图片流数据返回的时候要特别注意别用json,json的返回有长度限制,会将(data:image/png;base64,...)里面的data rn换行,从而导致图片无法解析。
错误做法:
$this->Ajaxreturn($img,'json')
正确做法:
$this->Ajaxreturn($img)
使用thinkphp3.2做图片流数据返回的时候要特别注意别用json,json的返回有长度限制,会将(data:image/png;base64,...)里面的data rn换行,从而导致图片无法解析。
错误做法:
$this->Ajaxreturn($img,'json')
正确做法:
$this->Ajaxreturn($img)
git仓库地址
https://github.com/endroid/qr-code
composer安装
$ composer require endroid/qr-code
实例:
<?php
use Endroid\QrCode\QrCode;
use Endroid\QrCode\QrCodeInterface;
use Endroid\QrCode\WriterRegistryInterface;
//代码片段
public function erweima(){
$text='hello';
$qrCode = new QrCode($text);
$qrCode->setSize(300);
// Set advanced options
$logo=APP_ROOT.'/logo.jpg';
$qrCode->setWriterByName('png');
$qrCode->setMargin(10);
$qrCode->setEncoding('UTF-8');
$qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]);
$qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 10]);
//加logo
$qrCode->setLogoPath($logo);
$qrCode->setLogoSize(80, 80);
$qrCode->setRoundBlockSize(true);
$qrCode->setValidateResult(false);
$qrCode->setWriterOptions(['exclude_xml_declaration' => true]);
//返回二进制流
$img=$qrCode->writeString();
$imginfo = 'data:png;base64,' . chunk_split(base64_encode($img));//转base64
//echo "<img src='$imginfo'>";
return $imginfo;
}
?>
public function delete(){
// 启动事务
Db::startTrans();
try{
$res=Db::table('user')->delete(1039);
if(!$res){
throw new \Exception('删除失败');
}else{
throw new \Exception('删除成功');
}
// 提交事务
Db::commit();
} catch (\Exception $e) {
dump($e->getMessage());
// 回滚事务
Db::rollback();
//注意:我们做了回滚处理,所以id为1039的数据还在
}
} composer config -g repos.packagist composer https://mirrors.tencent.com/composer/ //腾讯云
composer config repo.packagist composer https://mirrors.aliyun.com/composer/ //阿里云 //合并两个一维数组,去掉重复元素
function arraymerge($arr1=array(),$arr2=array(),$returnarr=array()){
if(!empty($arr1) && is_array($arr1)){
foreach($arr1 as $key=>$val){
$returnarr[] = $val;
}
}
if(!empty($arr2) && is_array($arr2)){
if(!empty($returnarr)){
foreach($arr2 as $k=>$v){
$flag = false;
foreach($returnarr as $ke=>$va){
if($va == $v){
$flag = true;
}
}
if(!$flag){
$returnarr[] = $v;
}
}
}else{
if(!empty($arr2) && is_array($arr2)){
foreach($arr2 as $key2=>$val2){
$returnarr[] = $val2;
}
}
}
}
return $returnarr;
} Content-Length mismatch, received 59879 bytes out of the expected 1472830http://repo.packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date
解决方案
此时 查看一下当前项目的composer镜像
composer config -l
在这里插入图片描述
发现自己使用的镜像是中国镜像
https://packagist.phpcomposer.com
这个镜像是有问题的 所以需要更换镜像
这边需要注意的是 更换镜像不要进行全局更换的命令 而是要针对这个项目去更换镜像
所以 我们在这个项目的根目录下也就是composer.json的路径下
针对这个项目 进行更换镜像 使用阿里云镜像!
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
【来源:CSDN 徊忆羽菲】https://blog.csdn.net/guo_qiangqiang/article/details/107408547
启动SVN单库
svnserve -d -r /home/svn/projest
关闭SNV服务
查到服务的进程号:
ps -A | grep svn
1597 ? 00:00:00 svnserve
关闭进程:kill 1597