Problem beim Datentransfer

Status
Nicht offen für weitere Antworten.

Rex

Bekanntes Mitglied
Liebe Freunde,

ich habe nun ein Applet Script, welches per POST Daten an mein PHP-Script schicken soll:
Hier zunächst einmal der Quellcode:
Code:
import java.applet.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;

public class DFApplet extends Applet {
    public static void main(String[] args)
    {

        JFrame f = new JFrame("Upload-Channel");
        f.setSize(100, 100);
        f.setVisible(true);

        new DropTarget(f, new DropTargetAdapter()
        {
            public void drop(DropTargetDropEvent e)
            {
                try
                {
                    Transferable t = e.getTransferable();
                    DataFlavor d = e.getCurrentDataFlavors()[0];
                    e.acceptDrop(e.getDropAction());
                    List a = (List) t.getTransferData(d);
                    for (int i = 0; i < a.size(); i++)
                    {
                        processFile((File) a.get(i));
                    }
                } catch (Exception ex)
                {
                    ex.printStackTrace();
                }
            }
        });
    }

    public static void processFile(File f)
    {
        try
        {
            URL url=new URL("http://www.xxx.de/");

    HttpURLConnection conn=(HttpURLConnection)url.openConnection();
    conn.setDoInput(true);
    conn.setDoOutput(true);
    conn.setUseCaches(false);
    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    conn.setRequestProperty("Connection", "close");

    // Es geht auch GET usw.
    conn.setRequestMethod("POST");


    // im PHP-Script kann man mittels $_POST['data'] auf 'blabla' zugreifen
    
    BufferedOutputStream out = new BufferedOutputStream(conn
                    .getOutputStream());
    out.print("data=");
            BufferedInputStream in = new BufferedInputStream(
                    new FileInputStream(f));  
    int i = in.read();
            while( i!=-1 )
            {
                out.write(i);
                System.out.write(i);
                i=in.read();
            }
    in.close();
    out.flush();
    out.close();
    System.out.println("Datei gesendet"); 

    conn.getResponseMessage();
    conn.getResponseCode();

    conn.connect(); 
            
        } catch (Exception e){e.printStackTrace();}    
    }
    
    
    
}

Es gibt mehrere Fehlermeldungen.
Ich habe auch schon versucht, das Problem in den Griff zu bekommen,
aber ich scheine grundsätzlich etwas falsch zu machen.

Wäre euch der Hilfe sehr dankbar!

MFG
Rex
 

Rex

Bekanntes Mitglied
Naja, in der IDE wegen der Syntax.

Hier die besagte Meldung: (die anderen kann ich nicht mehr repro.)
symbol : method print(java.lang.String)
location: class java.io.BufferedOutputStream
out.print("data=");
1 error
BUILD FAILED (total time: 2 seconds)
 

Leroy42

Top Contributor
Rex hat gesagt.:
Hier die besagte Meldung: (die anderen kann ich nicht mehr repro.)

Wenn du sie nicht mehr reproduzieren kannst, dann sei doch froh!
Keine Fehlermeldungen ==> keine Fehler! :cool:

und in der geposteten hast du die eigentliche Fehlermeldung
vergessen. :autsch:

Die Methode print gibt es nicht im BufferedOutputStream.

Ein bischen mehr solltest du schon selber machen; wir sind nicht
dazu da, offensichtliche Compilerfehler mühsam zu erraten.
 
S

SlaterB

Gast
tja, vielleicht verwendest du besser Operationen, die diese Klasse auch hat?

viele stehen da nicht zur Auswahl:
Code:
 Method Summary 
 void flush() 
          Flushes this buffered output stream. 
 void write(byte[] b, int off, int len) 
          Writes len bytes from the specified byte array starting at offset off to this buffered output stream. 
 void write(int b) 
          Writes the specified byte to this buffered output stream. 
  Methods inherited from class java.io.FilterOutputStream 
close, write 
  Methods inherited from class java.lang.Object 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedOutputStream.html
 
S

SlaterB

Gast
ich wollte eigentlich auch nur die drei posten, dann wärs deutlicher ;)
 
G

Gast

Gast
Hier noch einmal meine auftretende Fehlermeldung während des Kompilierungsvorgang:

symbol : method print(java.lang.String)
location: class java.io.BufferedOutputStream
out.print("data=");
1 error
BUILD FAILED (total time: 2 seconds)
 

SamHotte

Top Contributor
Ich trau' mich wetten, dass das nicht die ganze Fehlermeldung ist.
Auch wäre eine "Übersetzung" der Zeilennummer zu obigem Listing hilfreich.
 
G

Gast

Gast
Was mache ich jetzt falsch und wie kann ich das korrigieren?

Vielen Dank
MFG
Rex
 
S

SlaterB

Gast
Du nicht sollen benutzen Operation -------------> "print" <---------------,
da nicht vorhanden im BufferedOutputStream.

Benutze stattdessen write, wobei sich allgemein die Frage stellt,
ob du überhaupt mit so einem komplexen Objekt wie einem Stream umgehen kannst,
wenn du noch nicht mal dessen Operationen kennst.
Da kann man sicher ne Menge falsch machen, (z.B. funktioniert write nicht mit einem String), ich weiß das selber gar nicht so genau. ;)


Drei Zeilen weiter benutzt du aber doch schon
out.write(i);
scheint dir also nicht ganz fremd zu sein?
Benutze überall write()!
 

Rex

Bekanntes Mitglied
So, jetzt gibt er mir wieder einen Fehler aus:
canot find symbol method write

AHHHHHRRGGGHH!


MFG
Rex
 

Leroy42

Top Contributor
So, jetzt gibt er mir wieder den Fehlertext nicht mit:
canot find wrong code

AHHHHHRRGGGHH!


MFG
Leroy42
 

Rex

Bekanntes Mitglied
Vielen Dank!
Ein geniales, ausführliches, in meinen Augen - perfektes Tutorial.

Nun habe ich die Klasse eingebunden.

Nur ein Problem plagt mich noch.
Der Transfer-Function wird eine File (Variable f) übergeben.

Wie kann ich nun die Filedaten an den Output-Stream der PHP-Klasse schicken?


Hier mein benutzter Quelltext:

Code:
import java.applet.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;

public class dfwebasyouwishuploader extends Applet {
    public static void main(String[] args)
    {

        JFrame f = new JFrame("Upload-Channel");
        f.setSize(100, 100);
        f.setVisible(true);

        new DropTarget(f, new DropTargetAdapter()
        {
            public void drop(DropTargetDropEvent e)
            {
                try
                {
                    Transferable t = e.getTransferable();
                    DataFlavor d = e.getCurrentDataFlavors()[0];
                    e.acceptDrop(e.getDropAction());
                    List a = (List) t.getTransferData(d);
                    for (int i = 0; i < a.size(); i++)
                    {
                        processFile((File) a.get(i));
                    }
                } catch (Exception ex)
                {
                    ex.printStackTrace();
                }
            }
        });
    }

    public static void processFile(File f)
    {
        
try {

            URL url = new URL("http://www.xxx.de/uptest.php");

            PhpPostConnect con = new PhpPostConnect(url);

            try {

                con.send("data=");
                con.send("??"); //Wie kriege ich hier die Daten der File f gesendet?
             

            } catch (IOException e) {

                e.printStackTrace();

            }

        } catch (MalformedURLException e) {

            e.printStackTrace();

        }
    }
    
    
};

Vielen Dank!
Ihr wisst gar nicht, wie ihr mir geholfen habt!

Und noch zwei Fragen hinterher:
Wie ermittle ich die Anzahl der Bytes in einer solchen übergebenen File?
Und wie sehe ich, wie viele Bytes bereits "drüben" sind?

MFG
Rex
 

sparrow

Top Contributor
Rex hat gesagt.:
Vielen Dank!
Ein geniales, ausführliches, in meinen Augen - perfektes Tutorial.
Danke für die Blumen :)

Rex hat gesagt.:
Wie ermittle ich die Anzahl der Bytes in einer solchen übergebenen File?
file.length() gibt dir die Größe der Datei in Bytes zurück.

Rex hat gesagt.:
Der Transfer-Function wird eine File (Variable f) übergeben.
Wie kann ich nun die Filedaten an den Output-Stream der PHP-Klasse schicken?
[...]
Und wie sehe ich, wie viele Bytes bereits "drüben" sind?
Bisher erwartet die Verbindungsklasse einen String, theoretisch kannst du dir über
Code:
FileInputStream fis = new FileInputStream(File f);
einen InputStream aus der Datei beschaffen und diesen Byte für Byte zu einem String zusammenfassen und dann senden.
Oder du koppelst den InputStream direkt an den OutputStream an den Server.
Allerdings hab ich keine Ahnung ob das funktioniert und ob man via Post überhaupt Dateien übertragen kann.
Außerdem weiß ich nicht was passiert wenn auf diesem Weg binäre Daten übertragen werden. Wahrscheinlich gibt es dann ein Problem wenn man es diese binären Daten in einen String packt.

Also ein möglicher Weg:
InputStream der Datei byte für byte auslesen (InbutStream.read()) und an den OutputStram übergeben und dabei "mitzählen" lassen, dann weißt du wieviel schon übertragen ist.
 

Rex

Bekanntes Mitglied
Vielen Dank!
Ja, man kann mit POST Daten übertragen. - auch ganze Dateien.
Zumindest geht das mit PHP.
Also müsste das ganze hinhauen!

Vielen, vielen Dank an euch!
Solch eine komptente, schnelle und gut erklärte Hilfe habe ich in keinem
anderen Forum erleben dürfen!

Bei weiteren Problemen werde ich mich an dieses Forum wenden!
MFG
Rex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
G Problem beim GUI Allgemeine Java-Themen 9
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6
D Selenium WebDriver HtmlUnitDriver Problem beim Automatisieren Allgemeine Java-Themen 1
F Problem beim Speichern eines Attachments Allgemeine Java-Themen 3
M Problem beim Starten der Anwendung Allgemeine Java-Themen 3
O Problem beim Auslesen einer Arraylist von JComboBoxen Allgemeine Java-Themen 2
GUI-Programmer JNI - Problem beim Erstellen der .dll Allgemeine Java-Themen 9
D Problem mit Referenzen beim Serialisieren Allgemeine Java-Themen 3
R Problem beim vCard Manipulieren Allgemeine Java-Themen 2
Rudolf Problem beim Visitorpattern Allgemeine Java-Themen 2
J Problem beim Auslesen einer Datei vom Server Allgemeine Java-Themen 4
M Problem beim schreiben einer eigene generische Klasse Hashtable Allgemeine Java-Themen 11
U Mailclient über getDesktop.mail vorbereiten, Problem beim Anhang: Allgemeine Java-Themen 3
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
N Problem beim lesen einer File in JAR-File Allgemeine Java-Themen 3
N iText Problem beim verlinken anderer PDFs Allgemeine Java-Themen 2
M Problem beim Drucken von PDFs Allgemeine Java-Themen 3
H Problem beim Sortieren einer HashMap mit TreeSet Allgemeine Java-Themen 4
I Problem beim Ausführen von Shell Commandos Allgemeine Java-Themen 3
O Problem beim Ausgeben von Arrays Allgemeine Java-Themen 9
L Problem beim animieren von Bildern in Applet Allgemeine Java-Themen 23
C Problem beim einlesen bestimmter Seiten Allgemeine Java-Themen 5
Apo JNI-Problem beim erneuten Laden einer dll Allgemeine Java-Themen 28
S Problem beim Drucken auf Netzwerkdrucker unter Linux Allgemeine Java-Themen 9
S Problem beim Anlegen eines JDialogs! Allgemeine Java-Themen 4
A Problem mit ShutdownHook beim schließen Allgemeine Java-Themen 7
S Problem beim Löschen des Inhalts des Fensters Allgemeine Java-Themen 4
A Problem beim serialisieren/deserialisieren einer ArrayList Allgemeine Java-Themen 3
M Problem beim Umrechnen von Pixel in cm. Allgemeine Java-Themen 6
M Problem beim ausführen von Batchdateien Allgemeine Java-Themen 21
Escorter Problem beim starten von Batchfiles Allgemeine Java-Themen 4
A Problem beim Starten der H2-Datenbank Allgemeine Java-Themen 4
L WindowsTrayIcon in Java 1.4 - Problem beim ausführen der JAR Allgemeine Java-Themen 2
E Problem beim Anlegen einer Datei Allgemeine Java-Themen 4
E Problem beim Dateien kodieren ("Byte = Byte +1") Allgemeine Java-Themen 3
G Problem beim starten von eclipse product Allgemeine Java-Themen 2
M Problem beim Erstellen eines Objektes Allgemeine Java-Themen 3
M Problem beim laden von vielen Bildern Allgemeine Java-Themen 16
S Problem beim Einlesen von byte-werten aus datei Allgemeine Java-Themen 2
H Problem beim Malen auf ein Panel Allgemeine Java-Themen 2
G iText: Problem beim Drucken von AcroFormen Allgemeine Java-Themen 2
E Problem beim fertigen Programm die Hintergrundfarbe ändern Allgemeine Java-Themen 8
karambara Sonderzeichen-Problem beim Lesen und Speichern von Dateien Allgemeine Java-Themen 6
C Problem beim Umstieg von Java1.4 auf 1.5 Allgemeine Java-Themen 5
K javax.comm Problem beim starten aus .jar heraus Allgemeine Java-Themen 3
S Problem beim Bearbeiten von Java-Dateien unter Linux Allgemeine Java-Themen 3
S Hab ein Problem! Bei Dame! Beim Umranden! Allgemeine Java-Themen 2
G Problem beim speichern von Dateien Allgemeine Java-Themen 8
M Problem mit PageFormat beim Drucken Allgemeine Java-Themen 2
Streeber Problem beim Kompilieren und Ausführen Allgemeine Java-Themen 20
E Problem beim Compilieren Allgemeine Java-Themen 6
O JNI Problem beim kompilieren Allgemeine Java-Themen 2
M Codepage Problem (Vertauscht Zeichen beim Lesen aus Datei) Allgemeine Java-Themen 3
P Problem beim "spliten" eine Textdatei Allgemeine Java-Themen 3
F Problem beim Drucken mit javax.print Allgemeine Java-Themen 2
Z Problem beim Aufruf eines Listener? Allgemeine Java-Themen 4
bernd Problem beim kopieren! Allgemeine Java-Themen 2
B problem beim erstellen einer ausführbaren jar-datei Allgemeine Java-Themen 5
A Problem beim Aufruf von javac Allgemeine Java-Themen 7
J JFrame Problem beim schließen Allgemeine Java-Themen 2
S Problem beim Zugriff auf Internetseiten Allgemeine Java-Themen 4
R Problem beim speichern von eigenem objekt Allgemeine Java-Themen 6
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben