您的位置:首页 > 理论基础 > 计算机网络

java通过http的图片地址获取图片并保存

2011-12-26 09:38 309 查看
有时我们会遇到用java编程获取网络上一幅图片的问题,经常是,我写了下面的函数,可以在web的程序中使用,而且它还可以获取具有防盗链功能的图片

public static String getImgFromUrl(String urlstr, Stringsavepath)

{

int num = urlstr.indexOf('/',8);

int extnum = urlstr.lastIndexOf('.');

String u = urlstr.substring(0,num);

String ext =urlstr.substring(extnum+1,urlstr.length());

try{

long curTime = System.currentTimeMillis();

Random random = new Random(100000000);

String fileName = String.valueOf(curTime) +"_"

+ random.nextInt(100000000) + ext;

// 图片的路径

String realPath = AppConstants.ROOTPATH +savepath;

URL url =new URL(urlstr);

URLConnection connection = url.openConnection();

connection.setDoOutput(true);

connection.setRequestProperty("referer",u); //通过这个http头的伪装来反盗链

BufferedImage image =ImageIO.read(connection.getInputStream());

FileOutputStream fout=newFileOutputStream(realPath+fileName);

if("gif".equals(ext)||"png".equals("png"))

{

ImageIO.write(image, ext, fout);

}

ImageIO.write(image, "jpg", fout);

fout.flush();

fout.close();

returnsavepath+fileName;

}

catch(Exception e)

{

System.out.print(e.getMessage().toString());

}

return"";

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: