Moin an alle,
ich bin gerade dabei über ein Applet schreibend und lesend auf eine .txt-Datei auf einem Server zu zu greifen. Vorweg: Mein Applet ist signiert bzw. man kann diese über den Browser bestätigen. Zuerst bin ich im FAQ auf diesen Beitrag gestoßen:
Aus Applets in Dateien schreiben
Der PHP-Code hat bei mir leider nicht funktioniert, daher habe ich jemanden gefragt, der sich mit PHP einwenig auskennt und er hat folgende Datei für mich geschrieben:
Den Java-Teil habe ich aus dem FAQ-Thread übernommen:
Jetzt zum Problem: Also der Text, der in die datei.txt rein soll, kommt auch rein, allerdings bekomme ich nur noch eine weiße Seite angezeigt, nachdem er über das Applet die txt-Datei gefüllt hat. Wie das genau aussieht, mit der weißen Seite, seht ihr ihr:
main.ma.funpic.de/test3/
Also das Schreiben funktioniert, allerdings macht er das nicht im Hintergrund.
Hab's auch schon versucht in der Klasse eine Thread-Methode zu erstellen:
Und beim Button habe in der "actionPerformed"-Methode nur noch "php();" zum Auführen der Methode angegeben. Leider hat das auch nicht geholfen.
[EDIT]:
Okay, schreiben im Hintergrund läuft jetzt!!
Habe einfach mal 'ne Thread-Klasse angelegt und damit läuft's dann auch:
Nur das Lesen funktioniert leider noch nicht...
Auch nicht, wenn ich bei "eineEingabeDatei = new FileReader("datei.txt");" anstatt "datei.txt" den URL-Pfad zur Datei angebe: "eineEingabeDatei = new FileReader("http://main.ma.funpic.de/test3/datei.txt");"
Hier der Code für den Lese-Thread:
ich bin gerade dabei über ein Applet schreibend und lesend auf eine .txt-Datei auf einem Server zu zu greifen. Vorweg: Mein Applet ist signiert bzw. man kann diese über den Browser bestätigen. Zuerst bin ich im FAQ auf diesen Beitrag gestoßen:
Aus Applets in Dateien schreiben
Der PHP-Code hat bei mir leider nicht funktioniert, daher habe ich jemanden gefragt, der sich mit PHP einwenig auskennt und er hat folgende Datei für mich geschrieben:
Code:
<?php
define("FILE","datei.txt"); // Dateiname der zu speichernden Datei, bei Bedarf ändern
define("GET","var1"); // Bezeichnung der angehängten Daten, bei Bedarf ändern
$get = $HTTP_GET_VARS[GET];
$get .= "\r\n";
if (isset($get)) {
if (is_writable(FILE)) {
if (($FileHndl = fopen(FILE,'a'))) {
fwrite($FileHndl,$get);
}
}
}
?>
Den Java-Teil habe ich aus dem FAQ-Thread übernommen:
Code:
try {
URL home = getCodeBase();
String url = home.toString()+"php.php?var1="+tf.getText();
getAppletContext().showDocument(new URL(url));
} catch(Exception x) {}
}
Jetzt zum Problem: Also der Text, der in die datei.txt rein soll, kommt auch rein, allerdings bekomme ich nur noch eine weiße Seite angezeigt, nachdem er über das Applet die txt-Datei gefüllt hat. Wie das genau aussieht, mit der weißen Seite, seht ihr ihr:
main.ma.funpic.de/test3/
Also das Schreiben funktioniert, allerdings macht er das nicht im Hintergrund.
Hab's auch schon versucht in der Klasse eine Thread-Methode zu erstellen:
Code:
public void php() {
new Thread() {
public void run() {
URL home = getCodeBase();
String url = home.toString() + "write.php?var1=" + anzeigefeld.getText().toString();
try {
getAppletContext().showDocument(new URL(url));
}
catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}
Und beim Button habe in der "actionPerformed"-Methode nur noch "php();" zum Auführen der Methode angegeben. Leider hat das auch nicht geholfen.
[EDIT]:
Okay, schreiben im Hintergrund läuft jetzt!!
Habe einfach mal 'ne Thread-Klasse angelegt und damit läuft's dann auch:
Code:
package gaestebuch;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JApplet;
public class Thread1 extends Thread{
public Thread1() {
super();
}
public void run() {
JApplet j1 = new JApplet();
URL home = j1.getCodeBase();
String url = home.toString() + "write.php?var1=" + gaestebuch.anzeigefeld.getText().toString();
try {
j1.getAppletContext().showDocument(new URL(url));
}
catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Nur das Lesen funktioniert leider noch nicht...
Auch nicht, wenn ich bei "eineEingabeDatei = new FileReader("datei.txt");" anstatt "datei.txt" den URL-Pfad zur Datei angebe: "eineEingabeDatei = new FileReader("http://main.ma.funpic.de/test3/datei.txt");"
Hier der Code für den Lese-Thread:
Code:
package gaestebuch;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Thread2 extends Thread{
public Thread2() {
super();
}
public void run() {
FileReader eineEingabeDatei = null;
try {
eineEingabeDatei = new FileReader("datei.txt");
BufferedReader eingabeDatei = new BufferedReader(eineEingabeDatei);
String zeile = eingabeDatei.readLine();
while (zeile != null) {
gaestebuch.anzeigefeld.append(zeile + "\n");
gaestebuch.scroll();
zeile = eingabeDatei.readLine();
}
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (eineEingabeDatei != null)
try {
eineEingabeDatei.close();
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}