2016-03-30 4 views
0

Innerhalb einer SpringBoot App, ich versucht bin Bilder zurückzukehren über eine Output des Response-Objekt, über:Antwort versagt Bild zurückzukehren, wenn Output bytesWritten <8kb

try { 
    response.setContentType("image/png"); 
    InputStream in = new FileInputStream(pathToFile); 
    IOUtils.copy(in, response.getOutputStream()); 

} 
catch (Exception e){ 
    ... 
} 

Dies funktioniert gut, es sei denn, das Bild ist kleiner als 8kb, in diesem Fall gibt es nur nichts zurück.

Kann mir jemand sagen, warum weniger als 8kb würde die Antwort tatsächlich Null Daten zurückgeben (und - entscheidend - wie das zu beheben)?

Antwort

0

ich es gelöst haben, indem die Inhaltslänge explizit im Dateikopf:

File actualFile = new File(pathToFile); 
if (actualFile.exists()){ 
    try { 
     response.setContentType("image/png"); 
     response.setHeader("Content-Length", String.valueOf(actualFile.length())); 
     InputStream in = new FileInputStream(pathToFile); 
     IOUtils.copy(in, response.getOutputStream()); 
    } 
    catch (Exception e){ 
     ... 
    } 
} 

Ich denke, es nicht nicht nicht wie die Größe des Inhalts zu wissen, ob es unter 8kb war.