2012-11-27 4 views
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에는 사용할 수 있지만 이미지에는 사용할 수 없습니다.
내가 잘못했음을 지적 해 주시겠습니까?

답변

0

텍스트와 바이너리를 섞으면 확실하게 데이터가 손상됩니다. 예를 들어, US-ASCII는 7 비트이며 상위 비트가 설정된 모든 바이트가 손상됩니다.

손상을 방지하려면 문자열이나 텍스트를 사용하지 않고 이미지를 보내야합니다.

+1

** 모든 바이트가없는 바이트 ** ** 와트는 무엇입니까 ?? @ Peter Lawrey – Ken

+0

있어 .. 감사합니다 :) – Ken

관련 문제