Webservice, NuSOAP

MS-Tech

Erfahrenes Mitglied
Hallo Zusammen,

ich bin gerade dabei einen Webservice über PHP aufzubauen. Dazu benutze ich die Bibliothek "NuSOAP". Ich habe meine Aufrufe bisher mit einfachen Parametern und einfachen Rückgabewerten getestet. Soweit läuft auch alles prima.

Jetzt aber möchte ich binäre Daten zurückgeben, d.h. ich habe ein PDF in der Datenbank gespeichert (BLOB), möchte dieses laden und dann über den Webservicen an den Client zurückschicken. Der Aufbau ist der gleiche, als bei den simplen Rückgabewerten, nur funktioniert das hier nicht. Ich bekomme einfach gar nichts zurück. In der WSDL wird der Datentyp "xsd:base64Binary" verwendet. ich gehe mal davon aus, dass dieser korrekt ist?

An was könnte das liegen?

So sieht meine Funktion aus:

PHP:
// function to get a file from the database
function get_file($id) {

    include ('include/config.php');
    include ('include/functions.php');
    
    // Check the fileid
    if (!blank($id)) {

        // create the sql statement
        $sql = "SELECT file FROM xyz where id = '".mysql_real_escape_string($id)."'";
        
        // execute the statement
        $result = mysql_query($sql);
        
        // Processing of the result
        $row = mysql_fetch_array($result);

        // Return the value        
        return $row[0];
    } else {
        return new soap_fault('File','','No file id!'); 
    }
}

Viele Grüße
MS-Tech
 
Naja, dein Code erzeugt auch erstmal keine Rückgabe. Probier doch tstweise erstmal echo oder noch esser var_dump($row[0]).
 
Hi,

danke für deine Antwort, auch wenn ich diese gerade nicht verstehe.

Mit "return $row[0]" gebe ich doch etwas zurück. Wenn ich diese funktion in einem PHP-Skript auf dem Server ausführe, dann funktioniert diese einwandfrei. Es funktioniert nur nicht, wenn ich das Ergebnis über einen Webservice abrufen möchte.

Ach ja..wenn ich dann anstatt "return $row[0]" einfach nur "return 'test'" schreibe, funktioniert es. Anscheinend gibt es hier irgendwie Probleme mit dem Blob bzw. den binären Daten, die aus der Datenbank geladen werden?

Viele Grüße
MS-Tech
 
Bist du sicher, dass die datenbank auch etwas zurückliefert?
Ansonsten mal den Query ausgeben lassen un manuell in PHPMyAmdin testen.
 
Hi,

ja habe ich schon getestet und funktioniert wunderbar. Die Daten kommen nur nicht am Client an.

Grüße
MS-Tech
 
Hallo Zusammen,

ich hab die Bibliothek NuSOAP nun rausgeworfen und habe den Webservice mit "PHP-Boardmitteln" aufgebaut. Nun funktionierts.

Ich werde das Thema schließen.

MS-Tech
 

Neue Beiträge

Zurück