如何直接引用微信的图片链接详解
2017-07-07 12:31
471 查看
欢迎扫码加入Java高知群交流
以微信的一个图片链接为例子:http://mmbiz.qpic.cn/mmbiz_jpg/azXQmS1HA7m80L8HYB1Jfdqicn4LMgfejKp4Nkia6ZyExOJURicRg6HibN7aBcWxSkCTicCkbRIQgprO33Q2TsHFT9Q/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1
微信图片做了防盗链处理,如果直接引用图片的src地址,会提示如下信息:
网上查询了一下,有的说是用qq的一个链接能解决:
http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl=xxx
其中imageUrl是需要访问微信图片的链接,之前也测试过这个方法确实可行,但是现在腾讯做了更严格的防盗,所以现在这种方式也不行了。
那有没有更好的办法呢?我们发现,直接copy微信图片的链接到浏览器敲回车是可以正常的展示图片出来的,估计是通过Referer来判断,如果是非本站的Referer会进行拦截,
直接copy到浏览器地址栏是不带有Referer的,对不带Referer的请求貌似没限制,本人猜测的。通过iframe可以请求图片不携带Referer,虽然效率上和体验上没那么好,但是图片这样是可以展示出来的。如下图:
那么讲了这么多,大家最关心的问题还是代码怎么实现,其实很简答,通过js动态生成iframe即可,代码如下:
体验上来说确实不是很好,各位大神有什么更好的其它办法可以底下留言交流交流。
还有一种简单的方法就是直接在页面的head中添加<meta name="referrer" content="never">,
但是这样所有的请求都不会带referrer,有点自宫的感觉。
欢迎扫码加入Java高知群交流
以微信的一个图片链接为例子:http://mmbiz.qpic.cn/mmbiz_jpg/azXQmS1HA7m80L8HYB1Jfdqicn4LMgfejKp4Nkia6ZyExOJURicRg6HibN7aBcWxSkCTicCkbRIQgprO33Q2TsHFT9Q/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1
微信图片做了防盗链处理,如果直接引用图片的src地址,会提示如下信息:
网上查询了一下,有的说是用qq的一个链接能解决:
http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl=xxx
其中imageUrl是需要访问微信图片的链接,之前也测试过这个方法确实可行,但是现在腾讯做了更严格的防盗,所以现在这种方式也不行了。
那有没有更好的办法呢?我们发现,直接copy微信图片的链接到浏览器敲回车是可以正常的展示图片出来的,估计是通过Referer来判断,如果是非本站的Referer会进行拦截,
直接copy到浏览器地址栏是不带有Referer的,对不带Referer的请求貌似没限制,本人猜测的。通过iframe可以请求图片不携带Referer,虽然效率上和体验上没那么好,但是图片这样是可以展示出来的。如下图:
那么讲了这么多,大家最关心的问题还是代码怎么实现,其实很简答,通过js动态生成iframe即可,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head> <title>test</title> <script src="js/common/jquery-1.8.3.min.js"></script> <script type="text/javascript"> </script> </head> <body> <img src="http://mmbiz.qpic.cn/mmbiz_jpg/AiaMTYUYjYNa0mibnn2ay6luBGXPBRSV2ibJic3uGYickID3OUkvKzAC2E0ibVWSNicpykkpUqALFicSiaibgO0XyYWlEhGQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1"> <script> function showImg(url) { var imgid = Math.random(),frameid = 'frameimg' + imgid; window['img'+imgid] = '<img id="img" src=\''+url+'\' />' + '<script>window.onload = function(){' + 'parent.document.getElementById(\''+frameid+'\').width=document.getElementById(\'img\').width+\'px\';' + 'parent.document.getElementById(\''+frameid+'\').height=document.getElementById(\'img\').height+\'px\';' + '}<'+'/script>'; return '<iframe id="'+frameid+'" src="javascript:parent[\'img'+imgid+'\'];" frameBorder="0" scrolling="no" width="100%"></iframe>'; } </script> <script type="text/javascript"> //$("img").hide(); var imgs = document.getElementsByTagName('img'); for(var i=0;i<imgs.length;i++){ var data_src = $(imgs[i]).attr("src"); var html = showImg("http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl="+data_src); $(imgs[i]).replaceWith(html); } </script> </body> </html>
体验上来说确实不是很好,各位大神有什么更好的其它办法可以底下留言交流交流。
还有一种简单的方法就是直接在页面的head中添加<meta name="referrer" content="never">,
但是这样所有的请求都不会带referrer,有点自宫的感觉。
欢迎扫码加入Java高知群交流
相关文章推荐
- 如何直接引用微信的图片链接详解
- 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签
- 微信分享链接或网站文章到微信朋友圈,缩略图片不显示,该如何解决?
- 浅谈Android中微信的文本,音频,视频,链接,表情,图片分享接口开发详解
- 关于微信自定义分享的链接、标题、描述、图片都未生效问题详解
- qq空间h5页面,如何在微信中直接打开qq空间链接却不需要登陆qq账号密码
- 微信分享链接或网站文章到微信朋友圈,缩略图片不显示,该如何解决?
- 如何在不接入微信API的情况下自定义分享内容(图片、链接、标题)
- 详解如何在MySQL中数据库直接储存图片
- 关于如何去除fckeditor中图片上传对话框中的链接和高级两个选项
- [转]如何删除图片链接的蓝色边框?
- 如何删除gridview中图片链接的蓝色边框?
- 关于如何去除fckeditor中图片上传对话框中的链接和高级两个选项(转帖)
- 如何用最简单最快的方法判断一个BMP图片是否为黑白图片?我现在是全图片scanline 然后再加以分析,太慢了,有没有直接的函数可以做到呢?
- 教你如何在csdn里上传和引用图片
- C/C++堆、栈及静态数据区详解 (转载) 作者 chinus 02:51 | Permalink 静态链接网址 | Comments 最新回复 (1) | Trackback 引用 (0) | 一般分类 五大内存分区 在C++中,内存分成5个区,他
- 如何让 TGPImage 直接从流中加载图片? - 回复 "datouxuke " 的问题
- 在线状态代码详解及如何自定义在线风格图片 http://wp.qq.com/index.html
- 教你如何在MySQL数据库中直接储存图片