有时我们会遇到用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"";
}
public static String getImgFromUrl(String urlstr, Stringsavepath)