下面是完整的代码。
package cn.searchphoto.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.zip.GZIPInputStream;
/**
* 下载远程网站的图片,通过设置Referer反反盗链。
*
* @author JAVA世纪网(java2000.net, laozizhu.com)
*/
public class ImageDownloader {
/**
* 下载文件到指定位置
* @param imgurl 下载连接
* @param f 目标文件
* @return 成功返回文件,失败返回null
*/
public static File download(String imgurl, File f) {
try {
URL url = new URL(imgurl);
URLConnection con = url.openConnection();
int index = imgurl.indexOf("/", 10);
con.setRequestProperty("Host", index == -1 ? imgurl.substring(7) : imgurl.substring(7, index));
con.setRequestProperty("Referer", imgurl);
InputStream is = con.getInputStream();
if (con.getContentEncoding() != null && con.getContentEncoding().equalsIgnoreCase("gzip")) {
is = new GZIPInputStream(con.getInputStream());
}
byte[] bs = new byte[1024];
int len = -1;
OutputStream os = new FileOutputStream(f);
try {
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
} finally {
try {
os.close();
} catch (Exception ex) {}
try {
is.close();
} catch (Exception ex) {}
}
return f;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
}
分享到:
相关推荐
为了解决这一问题,许多网站会采取图片反盗链措施。本主题主要探讨如何“破解图片反盗链”,涉及ASP、JSP和PHP三种Web开发语言的解决方案。 首先,我们需要理解图片反盗链的基本原理。通常,服务器会检查请求图片的...
Java中,我们可以利用`java.net.URLConnection`类来创建网络连接并设置自定义的请求头,从而模拟合法的`Referer`,以达到下载受保护资源的目的。以下是一个名为`ImageDownloader`的Java类,专门用于通过设置`Referer...
然而,有时我们需要处理特殊的网络环境或者需要实现特定的功能,例如播放反盗链的媒体文件或实现边播放边保存。这时,我们就需要用到`Http Proxy`,通过创建一个自定义的代理服务器来实现这些需求。 首先,我们来看...
一、Servlet型反盗链原理 防盗链的核心在于检查HTTP请求中的`Referer`头部字段。`Referer`(引荐来源)是HTTP协议中的一项元数据,它记录了用户是从哪个页面点击链接来到当前页面的。当用户通过浏览器直接访问资源...
spring-boot-starter-fastdfsspring-boot... fastdfs: charset: # 字符集 init_conn_on_load: # 即刻初始化 tracker_servers: # tracker 地址(多个逗号隔开) http_anti_steal_token: # 开启反盗链(Boolean) http_secret
可能包含的版权管理机制包括内容审核、水印添加、反盗链等,以避免侵犯他人知识产权。 8. **SEO优化**:为了提高搜索引擎排名,整站程序通常会进行SEO(Search Engine Optimization)优化,包括元标签设置、URL结构...
asprain支持滚动公告条、帖子引用通告、邮件群发、自定义论坛访问统计代码等功能,支持下载统计、支持文件反盗链、支持支付宝、财付通绑定。用户可以通过支付宝、财付通两种在线支付通道进行站内积分充值。站内积分...
3.3 伪装成浏览器,或者反“反盗链” 有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法...