PHP - Problemas con base64_decode

 
Vista:

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:
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder