Hallo Leute,
ich hab mal wieder ne blöde Frage...
Ich will dass mein Servlet auf Anfrage eines Browsers eine Bild-Datei sendet. Also wenn der Browser z.B. http://localhost:8080/MeinServlet/Bild.jpg aufruft, dass diese dann angezeigt wird.
Ich habe es zunächst mit folgendem Code versucht:
Beim Browser kommt auch sowas wie ein Bild an. Also ein Bild, welches von der Höhe und der Breite tatsächlich mit "Bild.JPG" übereinstimmt, nur sieht der Inhalt ganz anders aus, man kann nicht mal teilweise erkennen dass es sich um das selbe Bild wie "Bild.JPG" handeln soll.
Ich habe im Internet folgenden funktionierenden Code gefunden:
Wieso funktioniert denn mein eigener Code (der obere) nicht?
mfg
ich hab mal wieder ne blöde Frage...
Ich will dass mein Servlet auf Anfrage eines Browsers eine Bild-Datei sendet. Also wenn der Browser z.B. http://localhost:8080/MeinServlet/Bild.jpg aufruft, dass diese dann angezeigt wird.
Ich habe es zunächst mit folgendem Code versucht:
Code:
protected void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException
{
res.setContentType("image/jpeg");
File f = new File("Bild.JPG");
FileReader fr = new FileReader(f);
OutputStreamWriter o = new OutputStreamWriter(res.getOutputStream());
int groesse = 200;
char[] puffer = new char[groesse];
int n;
n=fr.read(puffer);
while(!(n<puffer.length))
{
o.write(puffer,0,groesse);
n=fr.read(puffer);
}
o.write(puffer,0,n);
o.flush();
res.getOutputStream().close();
}
Beim Browser kommt auch sowas wie ein Bild an. Also ein Bild, welches von der Höhe und der Breite tatsächlich mit "Bild.JPG" übereinstimmt, nur sieht der Inhalt ganz anders aus, man kann nicht mal teilweise erkennen dass es sich um das selbe Bild wie "Bild.JPG" handeln soll.
Ich habe im Internet folgenden funktionierenden Code gefunden:
Code:
protected void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException
{
res.setContentType("image/jpeg");
File f = new File("Bild.JPG");
FileInputStream is = new FileInputStream(f);
ServletOutputStream os = res.getOutputStream();
int c;
while((c=is.read()) != -1)
{
os.write(c);
}
is.close();
os.close();
return;
}
Wieso funktioniert denn mein eigener Code (der obere) nicht?
mfg