Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android/Java-当我使用服务器套接字将图像发送到浏览器时,图像无法正确显示_Java_Android_Image_Image Processing_Serversocket - Fatal编程技术网

Android/Java-当我使用服务器套接字将图像发送到浏览器时,图像无法正确显示

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”以及更多

我已经实现了一个服务器套接字,当客户端执行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,因此我不认为读取的字节数更少。。。