java远程获取图片生成base64串

说下背景,项目中遇到前端js获取图片发生跨域的问题,服务器端又不支持匿名访问,只能通过服务器获取图片base64码进行展示。代码如下:下载

Java代码  

  1. /**
  2. * 远程读取image转换为Base64字符串
  3. * @param imgUrl
  4. * @return
  5. */
  6. private String Image2Base64(String imgUrl) {
  7. URL url = null;
  8. InputStream is = null;
  9. ByteArrayOutputStream outStream = null;
  10. HttpURLConnection httpUrl = null;
  11. try{
  12. url = new URL(imgUrl);
  13. httpUrl = (HttpURLConnection) url.openConnection();
  14. httpUrl.connect();
  15. httpUrl.getInputStream();
  16. is = httpUrl.getInputStream();
  17. outStream = new ByteArrayOutputStream();
  18. //创建一个Buffer字符串
  19. byte[] buffer = new byte[1024];
  20. //每次读取的字符串长度,如果为-1,代表全部读取完毕
  21. int len = 0;
  22. //使用一个输入流从buffer里把数据读取出来
  23. while( (len=is.read(buffer)) != -1 ){
  24. //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
  25. outStream.write(buffer, 0, len);
  26. }
  27. // 对字节数组Base64编码
  28. return new BASE64Encoder().encode(outStream.toByteArray());
  29. }catch (Exception e) {
  30. e.printStackTrace();
  31. }  下载
  32. finally{
  33. if(is != null)
  34. {
  35. try {
  36. is.close();
  37. } catch (IOException e) {
  38. e.printStackTrace();
  39. }
  40. }
  41. if(outStream != null)
  42. {
  43. try {
  44. outStream.close();
  45. } catch (IOException e) {
  46. e.printStackTrace();
  47. }
  48. }
  49. if(httpUrl != null)
  50. {
  51. httpUrl.disconnect();
  52. }
  53. }
  54. return imgUrl;
  55. }
时间: 2024-10-18 15:32:08

java远程获取图片生成base64串的相关文章

JS获取图片的base64编码

获取图片的base64编码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input accept="image/*" name="upimage" id="upload_file" type="

JS上传图片-通过FileReader获取图片的base64

下面文章,我想要的是: FileReader这个对象,可以借助FileReader来获取上传图片的base64,就可以在客户端显示该图片了.同时,还可以把该图片的base64发送到服务端,保存起来. 在XMLHttpRequest Level2出台之前,大多数的异步上传图片都是利用iframe去实现的. 至于具体的实现细节,我就不在这边啰嗦的,Google一下就有文章谈这个东西. 这次主要说说,怎么用新的API去实现图片上传. 原标题:JavaScript怎么上传图片 首先,少不了的自然是XML

Java如何获取图片验证码保存

举例网站:https://my.1hai.cn/Login/?url=http://www.1hai.cn/ 一.场景:出于安全性考虑,越来越多的Web平台登录都会增加图形验证码(图片),或者短信验证码.由于是图片脚本selenium是无法识别的,这是时候我们解析图片验证码. 解决思路:1.通过selenium定位到图片,把图片保存到本地. 2 通过ORC技术将图片验证码转化为文字. 其他解决方法:A:去掉验证码    B:设置万能码 二.Web图片验证码的实现源码: 1 package uti

java远程下载图片

从别的网站复制文章的时候,要把图片下载到我们网站,再把图片地址换成我们网站的地址 <img id="mbkenHUwhWeOj9U8K6c8LlAXaes3oXit-M4SnmRvB4wXXEue2ol7MviqfDlnDFgp.jpg" alt="图片" onerror="NextPic('/attached/image/mbkenHUwhWeOj9U8K6c8LlAXaes3oXit-M4SnmRvB4wXXEue2ol7MviqfDlnDFgp

php curl简单采集图片生成base64编码(并附curl函数参数说明)

许多年前的代码突然拿来一用,特做此笔记(此处的code用来定位内部错误位置,非http code) [php] view plain copy <?php $url="http://c.hiphotos.baidu.com/image/w%3D210/sign=ed30880babec8a13141a50e1c7029157/d52a2834349b033be1a9503e17ce36d3d539bd35.gif"; function curl_url($url,$type=0,

php远程获取图片或文件信息(get_headers, fsocketopen, curl)

<?php if(!function_exists("remote_filesize")){ /** * 获取远程或本地文件信息 * @param string $strUrl 远程文件或本地文件地址 * @param integer $intType 调用方式(1:get_headers 2:fsocketopen 3:curl 4:本地文件) * @param array $arrOptional * @return array * @author mengdj<[em

java中获取图片文件大小

/** * 判断图片大小 * @return */ public static boolean judegImgMaxMin(String path){ boolean flog = true; File file = new File(path); DecimalFormat df = new DecimalFormat("#.00"); String str = df.format(file.length() / 1024.0); // 最大图片值为15k if (Float.pa

js通过fileReader获取图片的base64格式

1 // 创建一个FileReader对象 2 var reader = new FileReader(); 3 4 // 绑定load事件 5 reader.onload = function(e) { 6     console.log(e.target.result); 7 } 8 9 // 读取File对象的数据 10 reader.readAsDataURL(document.querySelector("input[type=file]").files[0]); 当File

把图片生成Base64字符串

public class ImgeUtils { public static String img2String(BufferedImage img,String type){ String imgStr = null; ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { ImageIO.write(img, type, baos); byte[] imgByte = baos.toByteArray(); imgStr