tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
802
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    uwe75-1 uwe75-1 ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    50
    Hallo,

    also erstmal Entschuldigung falls mein Problem hier schon besprochen wurde, aber über die Suchfunktion konnte ich nichts finden - selbst mit dem Stichwort POST wurde nicht ein einziger Beitrag gefunden. Deshalb bitte ich um Eure Hilfe:

    ich übertrage einige Formularfelder und eine Datei per POST an ein PHP Skript. Wenn dieses Skript die datei ordnungsgemäß auf der neuen Domän gespeichert hat, dann wird das Skript mit die(); beendet und eine Statusanmeldung zurück an mein JAVA Skript gesendet.
    Wie kann ich diese Rückmeldung nun in meinem JAVA Skript weiter auswerten:

    Hier die Zwei Skripte:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    
    public void moveToWebspace(File theFile, String targetHost, String targetDir)
    {
        try {
            InetAddress addr = InetAddress.getByName(targetHost);
            Socket socket = new Socket(addr, 80);
            String path ="/uploadzip.php";
            DataInputStream fis = new DataInputStream(new BufferedInputStream(new FileInputStream(theFile)));
            byte[] theData = new byte[(int) theFile.length()];
            fis.readFully(theData);
            fis.close();
            DataOutputStream raw = new DataOutputStream(socket.getOutputStream());
            Writer wr = new OutputStreamWriter(raw);
            
            String command = "--dill\r\n" + "Content-Disposition: form-data; name=\"image\"; filename=\"" +
                theFile.getName() + "\"\r\n" + "Content-Type: image/jpeg\r\n" +"\r\n";
            String commandmore = "--dill\r\n"+"Content-Disposition: form-data; name=\"path\"\r\n\r\n" + targetDir + "\r\n";
        
            String trail = "\r\n--dill--\r\n";
        
            String header = "POST " + path + " HTTP/1.0\r\n" + "Accept: */*\r\n" +
                "Referer: http://localhost:8080\r\n" + "Accept-Language: de\r\n" +
                "Content-Type: multipart/form-data; boundary=dill\r\n" +
                "User_Agent: TESTAGENT\r\n" + "Host: " + targetHost + "\r\n" +
                "Content-Length: " + ((int) theFile.length() + commandmore.length() + command.length() + trail.length()) + "\r\n" +
                "Connection: Keep-Alive\r\n" + "Pragma: no-cache\r\n" + "\r\n";
            
            wr.write(header);
            wr.write(commandmore);
            wr.write(command);
            wr.flush();
            raw.write(theData);
            wr.write("\r\n--dill--\r\n");
            wr.flush();
            wr.close();
            raw.close();
            socket.close();
            //PrintWriter webout = new PrintWriter(System.out,true);
            //webout.println(header+commandmore+command+trail);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    Nu das PHP Skript:

    PHP-Code:
    <?php
        $path 
    $_POST['path'];
        
    //if(strpos($path, '/') !== false)
        //    die('Illegal / in name');
        
    if(strpos($_FILES['image']['name'], '/') !== false)
            die(
    'Illegal / in name');
        if(!
    getimagesize($_FILES['image']['tmp_name']))
            die(
    'Illegal image type');
        if(
    file_exists($path.'/'.$_FILES['image']['name']))
            die(
    'File exists');
        
        
    $umlaute = Array("ä","ö","ü","Ä","Ö","Ü","ß","&","/"," ");
        
    $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss","_","_","_");
        
    $_FILES['image']['name'] = str_replace($umlaute$replace$_FILES['image']['name']);

        
    // Copy images
        //umask(0000);
        
    if(!is_dir($path)) mkdir($path);
        
    move_uploaded_file($_FILES['image']['tmp_name'], $path.$_FILES['image']['name']);
        
    chmod ($path.$_FILES['image']['name'],0777);
        die(
    'ok');
    ?>
    Vielen Dank im Voraus
    Uwe
    Geändert von Oliver Gierke (05.01.09 um 21:14 Uhr) Grund: Code tags spendiert
     

  2. #2
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Commons Http Client: http://svn.apache.org/viewvc/httpcom...14&view=markup

    Wobei dein PHP Skript ja nichts zurückgibt, d.h. Statuscode 201 wäre also ausreichend auszuwerten (wobei du dafür das Skript noch entsprechend anpassen müsstest ).

    Gruß
    Ollie
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 04.08.10, 22:21
  2. jquery Post-Rückmeldung ausgeben
    Von Klopfer im Forum Coders Talk
    Antworten: 3
    Letzter Beitrag: 08.03.10, 08:37
  3. Antworten: 1
    Letzter Beitrag: 11.07.07, 11:56
  4. Antworten: 3
    Letzter Beitrag: 08.03.07, 19:59
  5. Ausgabe einer DB Anfrage in jsp !?
    Von batok im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 06.11.06, 16:22