0
我試圖將servlet中的圖像發送給ajax調用,但它在我的瀏覽器中顯示了一些字符。 我的問題是如何在base64
中編碼servlet響應。 我有一個圖像作爲迴應。如何將servlet響應編碼爲base64?
servlet代碼:
response.setContentType("image/jpeg");
ServletOutputStream out;
out = response.getOutputStream();
FileInputStream fin = new FileInputStream("D:\\Astro\\html5up-arcana (1)\\images\\1.jpg");
BufferedInputStream bin = new BufferedInputStream(fin);
BufferedOutputStream bout = new BufferedOutputStream(out);
int ch =0; ;
while((ch=bin.read())!=-1) {
bout.write(ch);
}
Ajax代碼:
$(document).ready(function() {
$('#nxt').click(function() {
$.ajax({
url : 'DisplayImage',
data : {
userName : 'Hi'
},
success : function(result) {
$('#gallery-overlay').html('<img src="data:image/jpeg;base64,'+result+'"/>');
}
});
});
});
我想我需要增加字節的容量,因爲圖像顯示部分。 –
回答很差。 Base64不支持部分編碼(由OP的問題「圖像部分顯示」所證實)。儘管如此,由於http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html – BalusC
中提到的原因,對於「sun.misc.BASE64Encoder」的評價太低了,但是這是以前的散文主義方式jdk8。該方法工作正常。所以不需要任何支持來使用這種方法。 –