# IE stellt tif-Datei kryptisch dar



## flaschenhals (21. Okt 2008)

Hallo,

ich habe folgenden Code auf eine JSP:


```
if(iLaenge > 0){   
try
{
				//Bytearray vom InputString
				byte [] bytearray = temp.getBytes("UTF-8");  		 
		 		 byte b1, b2;
		 		//Bytearray für den OutputStream 
				byte [] data = new byte[iLaenge];
		 		 
		 		 for (int k=0; k<iLaenge; k++){
		 		     
		 		     b1 = bytearray[k*2];
		 		     
		 		     if (b1>(byte)64) b1 = (byte)(b1-(byte)64+(byte)9); else b1 = (byte)(b1-(byte)48);
		 		     
		 		     b2 = bytearray[k*2+1];
		 		     if (b2>64) b2 = (byte)(b2-(byte)64+(byte)9); else b2 = (byte)(b2-(byte)48);		 		     
		 		     b1=(byte)(b1*(byte)16+b2);
				     //Byte in Bytearray setzen			 		     
		 		     data[k] = b1;
		 		     		 		     		 		     
		 		 
		 		 }

        //bytearray an den browser schicken
        //response.setContentType("image/tif");
		//response.setContentType("image/tif");
		//response.setContentType("image/x-tif");
		//response.setContentType("image/tiff");
		//response.setContentType("image/x-tiff");
		response.setContentType("application/tif");
		//response.setContentType("application/x-tif");												
		//response.setContentType("application/tiff");				
		//response.setContentType("application/x-tifx");	
		response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
		response.setHeader("Cache-Control", "public");
		response.setHeader("Pragma", "public");							
		response.setContentLength(iLaenge);		
        response.getOutputStream().write(data);
        response.getOutputStream().flush();
}
```

Der IE mit der Version 
6.0.2800.1106.xpsp1.020828-1920
öffnet die Datei in der dafür vorgesehenen Anwendung.

Der IE mit der Version
6.0.2900.2180.xpsp_sp2_gdr.050301-1519
öffnet keine Anwendung, sondern ein neues IE-Fenster mit kryptischen Zeichen.

Ich habe es schon mit verschiedenen ContentType versucht - geändert hat sich nichts.

Der Ansatz aus 
http://forum.de.selfhtml.org/archiv/2007/2/t147291/ 
hat wohl nicht gegriffen.

Wie kann man der neuen Version des IE die korrekte Anzeige beibringen?

Danke!


----------



## maki (21. Okt 2008)

```
for (int k=0; k<iLaenge; k++){
                  
                  b1 = bytearray[k*2];
                  
                  if (b1>(byte)64) b1 = (byte)(b1-(byte)64+(byte)9); else b1 = (byte)(b1-(byte)48);
                  
                  b2 = bytearray[k*2+1];
                  if (b2>64) b2 = (byte)(b2-(byte)64+(byte)9); else b2 = (byte)(b2-(byte)48);                  
                  b1=(byte)(b1*(byte)16+b2);
                 //Byte in Bytearray setzen                     
                  data[k] = b1;
                                                      
             
              }
```
Was soll denn das sein? (reth. Frage)

JSPs sind NICHT geeignet um binäre Daten zu versenden, das macht man mit Servlets.


----------



## flaschenhals (21. Okt 2008)

Hallo maki,

dann gehe einfach davon aus, dass es ein Servlet ist.

Es handelt sich hier um eine Applikation im Intranet. Alle User nutzen IE. Die User, die eine alte Version haben, bekommen die tifs zu Gesicht, die anderen lesen Hieroglyphen. Wobei bei den ersten die "Microsoft Office Document Imaging" aufgeht und bei den zweiten ein IE-Popup.


----------



## maki (21. Okt 2008)

>> dann gehe einfach davon aus, dass es ein Servlet ist. 

Super, dann hast du ja gar keine Probleme und alles läuft wie es soll!

Mal ernsthaft, wenn du eine Lösung für dein Problem suchst, musst du damit Leben dass du etwas ändern musst.

Wozu ist diese Routine da?
Um etwa den Binärstrom in Base64 zu konvertieren um dann doch aus einer JSP zu streamen?
Das wäre ein mieser Hack der eben solche Ergebnisse produziert wie von dir festgestellt, mal gehts, mal geht nicht...


----------

