Android/Java-当我使用服务器套接字将图像发送到浏览器时,图像无法正确显示
我已经实现了一个服务器套接字,当客户端执行HTTPGET请求时,它会发送一个文件(在我的例子中是.jpg格式的图像)。通过使用firefox浏览器(和firebug)进行测试,我发现数据字节的发送和接收都是正确的。我唯一的问题是,我在浏览器中看不到图像,但我看到了奇怪的字符,例如:“ÿÀ”�à®�ÿÄ�¾��������������������������!1AQa“第二季度”B#R#br#3ða#C$S c4%D#t#E”� �!质量“2”BñRÁB#R#3CSÚ���?�ùIè4”以及更多。所以我假设我的服务器发送的字节是正确的,但是它们没有像图像一样显示。是这样吗?我怎样才能解决这个问题? 下面是我用来发送字节的代码:Android/Java-当我使用服务器套接字将图像发送到浏览器时,图像无法正确显示,java,android,image,image-processing,serversocket,Java,Android,Image,Image Processing,Serversocket,我已经实现了一个服务器套接字,当客户端执行HTTPGET请求时,它会发送一个文件(在我的例子中是.jpg格式的图像)。通过使用firefox浏览器(和firebug)进行测试,我发现数据字节的发送和接收都是正确的。我唯一的问题是,我在浏览器中看不到图像,但我看到了奇怪的字符,例如:“ÿÀ”�à®�ÿÄ�¾��������������������������!1AQa“第二季度”B#R#br#3ða#C$S c4%D#t#E”� �!质量“2”BñRÁB#R#3CSÚ���?�ùIè4”以及更多
File photoFile = new File(getHeader);
int size2 = (int) photoFile.length();
byte[] bytes2 = new byte[size2];
try {
BufferedInputStream buf = new BufferedInputStream(new FileInputStream(photoFile));
buf.read(bytes2, 0, bytes2.length);
buf.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
client.getOutputStream().write(bytes2, 0, size2);
感谢所有帮助我的人。最后,我发现问题不在于我的代码,而在于使用的浏览器。我做了一些测试,发现: -Mozilla Firefox没有显示图像,而是显示奇怪的字符 -Safari正确显示图像 -Chrome可以正确显示图像 -歌剧只演奇怪的人物 因此,如果你发现我的问题,我建议尝试各种浏览器
谢谢什么是
客户端
吗?您确定您已在短时间内读取了图像文件吗?执行buf.read
时,实际读取字节数可以小于size2
;父项为:ServerSocket父项=新的ServerSocket();尤金:你说“少一个”是什么意思?我将图像的长度传递给buf.read,因此我不认为读取的字节数更少。。。