0

我正在创建 httpServer 并且已经完成了文件服务器部分的编写。
但是我在下载图像时遇到了问题。

        FileInputStream fis = new FileInputStream(file_path);

        output = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];

        int n = 0;
        while (-1 != (n = fis.read(buffer))) {
            output.write(buffer, 0, n);
        }
        data = output.toByteArray();
         body = new String(data);

 return body

我将响应主体返回到我的原始方法。

    // body is return value from above code, header is also  another String return value from 
    // makeHeader method
    String response = header + body;   
     byte[] Response = null;
   try{
      Response = response.getBytes("US-ASCII");
     }catch (UnsupportedEncodingException e) {}

      return Response

我的服务器在处理文本文件、.html、.css 时工作正常,但不处理图像。
你能指出我做错了什么吗

4

1 回答 1

0

如果你混合文本和二进制,你肯定会破坏数据。例如,US-ASCII 只有 7 位,任何设置了最高位的字节都将被破坏。

您应该尝试在不使用字符串或文本的情况下发送图像以避免损坏。

于 2012-11-27T19:11:55.370 回答