Problemas con base64_decode
Publicado por Asparcao (1 intervención) el 10/05/2017 05:39:10
Hola.
Estoy teniendo unos problemas que no comprendo.
Lo que quiero es enviar una imagen a un webservice, que la reciba y la guarde en la base de datos.
Para enviarla, he visto que tengo que codificarla con base64_encode
El webservice la recibe correctamente, pero al hacer el decode, algo ocurre y el webservice devuelve error:
XML error parsing SOAP payload on line 1: not well-formed (invalid token)
Bien, para simplificarlo, he reducido las lineas de codigo.
El chorro de caracteres que aparecera es la imagen codificada en base64.
Tengo una pagina PHP que solo hace esto, y lo hace CORRECTAMENTE:
El problema es cuando hago eso mismo dentro de una funcion en un webservice, que entonces me da el error que he comentado antes:
Si descomento la linea que esta comentada //$obs... es entonces cuando me da el error.
Por lo que he podido comprobar, la linea $obs.="Dentro WS:<br>".base64_decode("VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw=="); si funciona correctamente, pero no se por que la otra no
A alguien se le ocurre que puede ser?
Estoy teniendo unos problemas que no comprendo.
Lo que quiero es enviar una imagen a un webservice, que la reciba y la guarde en la base de datos.
Para enviarla, he visto que tengo que codificarla con base64_encode
El webservice la recibe correctamente, pero al hacer el decode, algo ocurre y el webservice devuelve error:
XML error parsing SOAP payload on line 1: not well-formed (invalid token)
Bien, para simplificarlo, he reducido las lineas de codigo.
El chorro de caracteres que aparecera es la imagen codificada en base64.
Tengo una pagina PHP que solo hace esto, y lo hace CORRECTAMENTE:
1
2
3
<?php
echo base64_decode("R0lGODdhCwAtAOMAAHQCBPyWDGRiZMzOzGxubPTy9Dw+PLy+vLRGBNTW1Hx+fPz+/AAAAAAAAAAAAAAAACwAAAAACwAtAAAESXDJSau9OOvNu/9gKIoAgJxJMSFTECCHCixu/caz7SJKwuovwQABDA6LCKFPhzD0CoeT1BlbQBWCrKIqKSQG4NRoTC6bz+h0JgIAOw==")."<br>";
?>
El problema es cuando hago eso mismo dentro de una funcion en un webservice, que entonces me da el error que he comentado antes:
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
<?php
// Importar la biblioteca NuSOAP
require_once('nusoap/lib/nusoap.php');
$miURL = $accesoHttp.$rootURL;
$server = new soap_server();
$server->configureWSDL('ws_plus', $miURL);
$server->wsdl->schemaTargetNamespace=$miURL;
$server->wsdl->addComplexType('Plus',
'complexType',
'struct',
'all',
'',
array(
'mensaje' => array('name' => 'apuntados', 'type' => 'xsd:string'),
'idNuevo' => array('name' => 'totalExacto', 'type' => 'xsd:string'),
'observaciones' => array('name' => 'observaciones', 'type' => 'xsd:string')
)
);
$server->register('test', // Nombre de la funcion
array('WStthumb' => 'xsd:string'), // Parametros de entrada
array('return' => 'tns:Plus'), // Parametros de salida
$miURL
);
function test($WStthumb) {
//$obs.="Dentro WS:<br>".base64_decode("R0lGODdhCwAtAOMAAHQCBPyWDGRiZMzOzGxubPTy9Dw+PLy+vLRGBNTW1Hx+fPz+/AAAAAAAAAAAAAAAACwAAAAACwAtAAAESXDJSau9OOvNu/9gKIoAgJxJMSFTECCHCixu/caz7SJKwuovwQABDA6LCKFPhzD0CoeT1BlbQBWCrKIqKSQG4NRoTC6bz+h0JgIAOw==");//.base64_decode($WStthumb);
$obs.="Dentro WS:<br>".base64_decode("VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==");
$respuesta = array(
'observaciones' => "$obs"
);
return new soapval('return', 'tns:Plus', $respuesta);
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:'';
$server->service($HTTP_RAW_POST_DATA);
?>
Si descomento la linea que esta comentada //$obs... es entonces cuando me da el error.
Por lo que he podido comprobar, la linea $obs.="Dentro WS:<br>".base64_decode("VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw=="); si funciona correctamente, pero no se por que la otra no
A alguien se le ocurre que puede ser?
Valora esta pregunta
0