Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/01/2007, 17:18
Avatar de erlingfiallos
erlingfiallos
 
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 3 meses
Puntos: 9
Re: Confusion con nusoap

la funcion header lo que haria es regresar la cabecera para impresion en pantalla.. y lo que deberia de hacer es regresar el xml tal y como se supone que lo hace la libreria.. por lo que creo que eso no seria una salida..

El codigo de mi cliente es:

Cita:
private void btnupload_Click(object sender, EventArgs e)
{
string n_archivo = txtpath.Text;
try
{
System.IO.BinaryReader BinRead = new System.IO.BinaryReader(System.IO.File.Open(n_archi vo, System.IO.FileMode.Open, System.IO.FileAccess.Read));
WS.Credentials = System.Net.CredentialCache.DefaultCredentials;
BinRead.BaseStream.Position = 0;
txtrespuesta.Text = Convert.ToString(BinRead.BaseStream.Length);
byte[] buffer = BinRead.ReadBytes(Convert.ToInt32(BinRead.BaseStre am.Length));
BinRead.Close();

//WS.UploadArchivo(buffer, nombre_archivo);
WS.UploadArchivo(Convert.ToString(buffer), nombre_archivo);
}
catch (Exception exec)
{
MessageBox.Show(this, exec.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Y el codigo de mi servidor es el siguiente:

Código PHP:
<?php

// Nota : Se debe tener desactivado el modulo php_soap
// ademas la variable allow_call_time_pass_reference debe estar en On

require_once('nusoap/nusoap-0.7.2/lib/nusoap.php');
$namespace 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];
$servidor = new soap_server;

$servidor->configureWSDL('Service',$namespace);
$servidor->wsdl->schemaTargetNamespace $namespace;

//Aqui se declaran los metodos que son publicos
$servidor->register(
    
'Hola',                                // nombre del metodo
    
array('nombre' => 'xsd:string'),    // parametros de entrada
    
array('return' => 'xsd:string'),    // parametros de salida
    
'uri:Service',                      // namespace
    
'uri:Service/Hola',                    // SOAPAction
    
'rpc',                                // style
    
'encoded'                            // use
);

$servidor->register(
    
'DownloadArchivo',
    array (
'filename' => 'xsd:string'),
    array (
'return' => 'xsd:string'),
    
'uri:Service',
    
'uri:Service/DownloadArchivo',
    
'rpc',
    
'encoded'
);

$servidor->register(
    
'UploadArchivo',
    array (
'buffer' => 'xsd:string','filename' => 'xsd:string'),
    array (
'return' => 'xsd:string'),
    
'uri:Service',
    
'uri:Service/DownloadArchivo',
    
'rpc',
    
'encoded'
);

$ArchivosEncontrados = array ('Encontrados' => '');

function 
Hola($nombre){
    return 
"Hola ".$nombre." Webservice funcionando al 100%";
}

function 
DownloadArchivo($filename) {
    
$file "images/".$filename;        
    
$picture fread(fopen($file,"rb"0),filesize($file));
    
$base64 chunk_split(base64_encode($picture));
                  
    return 
$base64;
}

function 
UploadArchivo($buffer$filename) {
    
$directorio "images/";
    
$data base64_decode($buffer);
    
$im imagecreatefromstring($data);
    
imagejpeg($im,$directorio.$filename);
    
imagedestroy($im);
    
    return;
}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA '';
$servidor->service($HTTP_RAW_POST_DATA);