电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

java后台将图片从一个服务器保存到另一个服务器上时显示不完整

java后台将图片从一个服务器保存到另一个服务器上时显示不完整_第1页
1/6
java后台将图片从一个服务器保存到另一个服务器上时显示不完整_第2页
2/6
java后台将图片从一个服务器保存到另一个服务器上时显示不完整_第3页
3/6
问题描述: 问题涉及三个平台,源图片服务器,网络服务器,文件管理服务器。网络服务器从源图片服务器通过后台HttpConnection 方式获取图片二进制流,并将二进制流转换成 base64 编码格式,再次通过 HttpConnection 方式发送到文件服务器进行存储。 第一种实现方式: imgUrl : 为一个图片链接。 Public static void save(imgUrl) { URL url = new URL(imgUrl); //获取图片二进制流 InputStream imgStream = url.openStream(); //将二进制流转化成base64编码格式 String base64ImgStr = getImageStr(imgStream); //将图片信息保存到文件管理器 String xmlStr = “”+ “file/20140301001.jpg”+ “”+ base64ImgStr +””+ “” saveImg(xmlStr); } public static String getImageStr(InputStream in) throws Exception { byte[] data = null; // 读取图片字节数组 try { data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); // 返回Base64编码过的字节数组字符串 return encoder.encode(data); } 按这种方式保存图片,文件比较小时(10K以下)时图片能完整保存,如果过大则只能保存部分,图片显示不完整。 第二种方式: 将二进制流分段读取并转成base64编码 public static void getImageStr (String _path, String _savePath) { String savePath = _savePath; String path = _path; int BYTE_SIZE = 1; int SAVE_SIZE = 1024; byte[] buff = new byte[BYTE_SIZE]; // 每次读的缓存 byte[] save = new byte[SAVE_SIZE]; // 保存前缓存 BufferedInputStream bf = null; FileOutputStream file; URL url = null; String imgBase64 = ""; HttpURLConnection httpUrl; try { // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); url = new URL(path); httpUrl = (HttpURLConnection) url.openConnection(); bf = new BufferedInputStream(httpUrl.getInputStream()); file = new FileOutputStream(savePath); int i = 0; while (bf.read(buff) != -1) { // 一个字节...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

java后台将图片从一个服务器保存到另一个服务器上时显示不完整

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部