PHP-Code -> Java

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo, kann mir bitte jemand dieses PHP-Script in Java (kein javascript) umschreiben? :)

Vielen Dank schon mal :)

Code:
$cont = "";
$arrext = array("gif"=>"image/gif","jpg"=>"image/jpeg","png"=>"image/png");
$url = strtolower($_GET['url']);
$exit = strrpos($url,".");
$accext = substr($url,$exit+1);
if($accext!="" && $arrext[$accext]>"")
{
	$fp = @fopen ($_GET['url'], "r");
	if($fp)
	{
		while(!feof($fp))
	   {
	       $cont.= fread($fp,1024);
	   }
	   fclose($fp);
	  header("Content-type: ".$arrext[$accext]);
	  header("Content-length: ".strlen($cont));
		echo $cont;
	}
}
 
G

Gast

Gast
weder noch ^^

ganz normale java applikation, die mittels "java Filename" gestartet wird und mit "main()" als startfunktion arbeitet.
 

SamHotte

Top Contributor
Ich weiß nicht mehr, wer das mal gesagt hat, aber es ist ein schöner Spruch: "A poor programmer can write bad code in any language" ;-)
 

SebiB90

Top Contributor
irgendwie sehe ich den nutzen nicht, es wird einfach eine datei besser gesagt bild angezeigt bei diesem php code
machste einfach ne klasse die ein frame erstellt dann per imageio das entsprechende bild ließt, dieses als imageicon auf nen label klascht und dieses label einfach zentriert auf dem frame platzieren
 

Illuvatar

Top Contributor
Mal wörtliches übersetzen probieren...

Code:
String cont = ""; 
Map<String,String> arrext = new Hashmap();
arrext.put ("gif", "image/gif");
arrext.put ("jpg", "image/jpeg");
arrext.put ("png", "image/png"); 
String url = something.getStringFromSomewhere().toLowerCase();
int exit = url.indexOf("."); 
String accext = url.substring(exit+1); 
if(exit >= 0 && !accext.equals("") && arrext.get(accext) != null) 
{ 
   InputStream fp = null;
   try{
      fp = new URL (url).openStream();
   }catch (Exception e){e.printStackTrace())}
   if(fp != null) 
   {
      String cont = "";
      int len;
      byte[] buf = new byte[1024]; 
      while((len = fp.read(buf)) >= 0) 
      { 
          cont += new String (buf, 0, len); 
      } 
     fp.close(); 
     //Headerzeugs fällt ja wohl weg?
     something.echo (cont);
   }
}
 

SebiB90

Top Contributor
die direkte übersetzung bringts ja nicht wirklich, laufen tut sie jedenfalls nicht mit deinem something
aber ich frag mich was der thread ersteller vor hat ???:L
selbst das php script ist eigentlich unsinnig wieso das bild auslesen und dann in der php datei wieder als normales bild ausgeben? wie wärs mit direktem zugriff auf das bild.
und wie soll die darstellung mit dem java programm sein, inner konsole gehts ja wohl schlecht da kann man kein header senden und dann bild anzeigen lassen.
 
G

Guest

Gast
nunja, dsa script soll den referer eines bildes "blockieren", das heißt wenn das bild z.b. in einem chat gepostet wird, der über eine sessionid läuft, dann würde der referer (mit der sessionid natürlich) an den server übergeben werden. und somit könne man anhand der sessionid (die man nun in den serverlogs stehen hat) schaden anrichten. :)
 

Illuvatar

Top Contributor
Ich sehe den Zusammenhang mit Java leider immer noch nicht, außer du willst - aber das hasst du oben verneint - eine JSP Seite machen.
 
G

Guest

Gast
also der chatserver ist in java geschrieben, und ich will nicht immer dazu noch extra ein php script laufen lassen, deswegen möchte ich gerne das in den chatserver integrieren :) kein JSP und kein Servlet und ersrecht kein Aplett :)
 

Leroy42

Top Contributor
Also der Chatserver ist eine Java-Applikation auf dem Server, der die Clients bedient.
Geschnallt :D
Aber unter was laufen die Clients? In einem Browser? Dann frage ich mich, wer wie wo wann
die bisherige PHP-Seite aufruft und wo dieses Bild angezeigt wird ???:L
Das müssten wir zur Umsetzung schon wissen.
 
G

Guest

Gast
das bild wurde im chat aufgerufen (die ausgabe ist html). es sah bisher so aus:
proxy.php
Einen Client gibt es nicht, da es sich um einen WebChat handelt.
 

Illuvatar

Top Contributor
Aha... ich glaube ganz langsam dämmerts mir, was du uns hier mitteilen willst ;)
Nochmal zusammenfassend:
Du hast einen Chatserver, der ist eine Java-Applikation. Die Clients dazu laufen im Browser, ich vermute mal per Ajax, DHTML etc.
In dem Chat können die Clients jetzt Bilder (Smilies oder so?) verwenden. Du willst verhindern, dass jemand direkt auf diese zugreifen kann und loggen, wer den ansonsten darauf zugreift. Bisher machst du das per PHP-Script. Du willst das aber mit in den Chatserver integrieren.

Also:
1. Das was du bisher machst, ist ja so wie ich es verstehe, etwas sinnlos... Was hindert den pösen Bilderdirektverlinker daran, statt der PHP-Seite auf den Teil hinter dem ?url= zu verlinken?
2. Die einzige sinnvolle Lösung, das in den Chatserver zu integrieren, sehe ich darin, bei diesem einen weiteren Port zu öffnen, z.B. 83, hinter dem ein eigener kleiner Webserver steht, der dann das Bild zurückgibt oder auch nicht. Das was diesem Server übergeben wird, sollte aber (siehe 1.) vllt besser nicht die URL sein, sondern etwas, woraus der die URL zusammensetzen kann. Dre Link wäre dann vllt. irgendwie so: <img src="http://www.bla.de:83/BILD1>
3. Ich hätte gedacht, das kann man vielleicht auch im eigentlichen Server (auf dem die Bilder liegen), per htaccess oder so regeln? Oder hast du über den gar keine Kontrolle?
 
G

Gast

Gast
mh, du hast mich immer noch nicht richtig verstanden :)

also es geht darum, es gibt einen befehl namens /p url mit dem die user ein bild in den chat posten können, und das was die als url eingeben, wird im chat dann als bild ausgegeben, das heißt, die müssen ja nicht den ganzen html code angeben sondern eben nur /p http://.../bild.jpg also wäre es nicht machbar vom user, dort das php script, also url= zu entfernen. Und das script soll nich dazu dienen, um bilder zu klauen zu verhindern, sondern nur, dass der referer nicht an den server übermittelt wird, von dem das bild geholt wird. denn sonst könnte man die sessionid des users (die übrigens in der url von chat ausgabe drinne ist (http://...../CHAT?user=bla&sessionid=234234234)) wenn jemand an diese sessionid rankommt, kann er ja diesen user "steuern"... ich hoffe ich konnte mich jetzt klarer ausdrücken :)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben