问题:H5 a标签无法对跨域图片设置download重命名
解决方案:
1.点击下载时服务器请求跨域图片并暂存,下载完成后删除图片(避免造成空间资源占用).
2.反向代理将跨域资源转入当前域(设置不重名路径定向到图片域名);
1.实现原理:
代码:
public function qr_img()
{
$get = input();
unset($get['id']);
$url = 'https://pan.baidu.com/share/qrcode';
$url = combineURL($url, $get);//url参数拼接
$filename = './static/img/qrcode/' . input('id') . ".png";
file_put_contents($filename, curl($url));
$request = Request::instance();
$domain = $request->domain();
header("Location: ${domain}/${filename}");
unlink($filename);//删除图片
exit;
}
<a href="目标接口?图片参数&id={{d.id}}" download="{{d.id}}_{{d.realname}}.png"> 点击下载</a>
2.域名服务下配置该路由,并更换图片路径域名
location /pan {
rewrite ^.+pan/?(.*)$ /$1 break;
proxy_pass https://pan.baidu.com/;
}