国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

java圖片轉(zhuǎn)base64和真實的結(jié)果不一樣

瀏覽:143日期:2023-12-20 13:01:09

問題描述

先上代碼

String imgURL = 'http://www.g3zj.net:8082/util.action?method=appauthimg&d_=99';byte[] data = null;try { // 創(chuàng)建URL URL url = new URL(imgURL); // 創(chuàng)建鏈接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod('GET'); conn.setConnectTimeout(5 * 1000); InputStream inStream = conn.getInputStream(); data = new byte[inStream.available()]; inStream.read(data); inStream.close();} catch (IOException e) { e.printStackTrace();}// 對字節(jié)數(shù)組Base64編碼BASE64Encoder encoder = new BASE64Encoder();str=encoder.encode(data);

就是從一個網(wǎng)絡(luò)讀取圖片并轉(zhuǎn)成base64.發(fā)現(xiàn)轉(zhuǎn)出來的結(jié)果無法用于img標(biāo)簽顯示(已加了data:image/jpeg;base64,前綴)。后來直接百度找了一個在線生成base64的網(wǎng)站,把這個圖片url放上去轉(zhuǎn)換,結(jié)果發(fā)現(xiàn)別人在線轉(zhuǎn)換出來的base64比我java代碼轉(zhuǎn)換的base64還長了很多。

為什么會這樣呢?

問題解答

回答1:

InputStream 的 available() 返回的值是該InputStream 在不被阻塞的情況下,一次可以讀取到的數(shù)據(jù)長度。但網(wǎng)絡(luò)情況總是不定的,經(jīng)常阻塞。所以建議使用循環(huán)讀取 InputStream 中的數(shù)據(jù)。

回答2:

讀取整個InputStream時,用Streams.copy()比穩(wěn)妥,例如題主這個例子中,可以是:

ByteArrayOutputStream baos = new ByteArrayOutputStream();Streams.copy(conn.getInputStream(), baos);String str = new BASE64Encoder(baos.toByteArray());回答3:

String imgURL = 'http://www.g3zj.net:8082/util.action?method=appauthimg&d_=99';ByteArrayOutputStream data = new ByteArrayOutputStream();try { // 創(chuàng)建URL URL url = new URL(imgURL); byte[] by = new byte[1024]; // 創(chuàng)建鏈接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod('GET'); conn.setConnectTimeout(5 * 1000); InputStream is = conn.getInputStream(); // 將內(nèi)容讀取內(nèi)存中 int len = -1; while ((len = is.read(by)) != -1) {data.write(by, 0, len); } // 關(guān)閉流 is.close();} catch (IOException e) { e.printStackTrace();}// 對字節(jié)數(shù)組Base64編碼BASE64Encoder encoder = new BASE64Encoder();System.out.println('data:image/jpg;base64,'+encoder.encode(data.toByteArray()));

然而樓主的代碼是可以用的,在我這里,只要加上data:image/jpg;base64,就好了

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 亚洲小视频在线 | 国产精品无码久久av | 国产激情一级毛片久久久 | 国产农村一二三区 | 精品国产三级a | 草草视频在线观看 | 亚洲综合性 | 国产又粗又黄又湿又大 | 国产精品国产 | 精品成人在线观看 | 中文字幕在线一区二区三区 | 免费特黄一区二区三区视频一 | 久久香蕉国产线看观看式 | 亚洲高清无在码在线无弹窗 | 一本色综合 | 欧美精品黄页免费高清在线 | 洋老外米糕国产一区二区 | 亚洲一区二区视频 | 亚洲加勒比久久88色综合 | 国产精品理论 | 女人张开双腿让男人 | 国产亚洲欧美ai在线看片 | 欧美精品成人一区二区视频一 | 碰碰碰人人澡人人爱摸 | 国产在线观看免费视频软件 | 久久久久久国产精品三级 | 欧美级 | 久久怡红院亚欧成人影院 | 国产亚洲高清不卡在线观看 | 真人毛片免费全部播放完整 | 亚洲视色 | 黄色毛片视频校园交易 | 亚洲精品综合一区二区三区在线 | 一区二区三区在线播放视频 | 国产毛片a精品毛 | 欧美野外性xxxxfeexxxxx | 成人www视频网站免费观看 | 国产在线一区二区三区在线 | 欧美做a一级视频免费观看 欧美做爱毛片 | 黄在线看 | 欧美一级淫片a免费播放口aaa |