2013-02-27 5 views
0

Привет Я пытаюсь получить изображения, переданные хотя WSDL в качестве переменнойКак сохранить изображение с помощью wsdl/SOAP в PHP?

$wsdl = 'http://mydataconnection.com/IR?wsdl'; 
ini_set("soap.wsdl_cache_enabled", "0"); // TODO: disable WSDL cache if required 
ini_set("default_socket_timeout", 10); // TODO: set appropriate read timeout 
$client = new SoapClient($wsdl, array("connection_timeout"=>5)); 

$days = 7; // Get all products that have changed in the past 7 days 
$date = date('d/m/Y 00:00', (time() - ($days * 24 * 60 * 60))); 
$productIds = $client->getProductIdsChangedSinceDateStrForType(array("lastRequestDateStr" => $date, "leafOnly" => true))->getProductIdsChangedSinceDateStrForTypeReturn; 


foreach ($productIds as $productId) { 
$product = $client->getProductUsingIdAndImageFlag(array("productId" => $productId, "incImage" => true))->getProductUsingIdAndImageFlagReturn; 

$image =  $product->image; 

} 

Этот код возвращает и количество переменных в $ продукта (массив), в том числе $ Продукт-> изображение, которое возвращает целое изображение, но Я не могу показаться, чтобы сохранить данные в читаемом формате .. начало данных в $ изображения выглядит это и довольно долго, так что я не буду размещать все это ...

‰PNG [email protected]=€IDATxÚì½|[×Ùø¯3CÌÌÌÌL2³%ÙZK–%Ë’eŒ23sÐa‡“¦M»•×n+­´­k»rõïÈ7ñœ4ɶ÷ÝÿóמïçùœœV$û|ï󜫫+Ôù? þ (*¢B PTE…@ PTŠ @ ¨Š @Q!¢B (*¢B PTE…@ PTŠ @ ¨Š @Q!¢B (*¢B PTE…@ PTŠ @ ¨@Q!¢B (*¢B PTE…@ PTŠ @ ¨@Q!¢B (*¢B PTE…@ ¨Š @ ¨@Q!¢B (*¢B PTE…@ ¨Š @ ¨@Q!¢B (*E…@ PTE…@ ¨Š @ ¨@Q!¢B (*E…@ PTE…@ ¨Š @ ¨@Q!(*¢B (*E…@ PTE…@ ¨Šúÿ ?ýË-EýÿÍÒ 

Я попытался с помощью код ниже, чтобы сохранить изображение, но он не работает и может быть неправильным.

base64_decode($image); 
$filename = "$imagename.png"; 
if (!$handle = fopen($filename, 'w')) { 
    echo "Cannot open file ($filename)"; 
    exit; 
} 

if (fwrite($handle, $content) === FALSE) { 
    echo "Cannot write to file ($filename)"; 
    exit; 
} 
fclose($handle); 
echo system("png -d $filename"); 

Любая помощь будет очень признательна.

Благодаря

ответ

0

Просто пытался случайные вещи, чтобы посмотреть, что происходит ...

header("Content-type: image/png"); // or whatever 
print $image; 

будет показывать изображение на экране я все еще пытаюсь выяснить, как сохранить его как AFile

+0

imagepng (imagecreatefromstring ($ image), $ imagename. '. Png'); – PhillBooth

1

Я получил ответ от моего клиента с мылом, такого как ваш. В моем случае код ниже работает.

$image =  $product->image; 
$filename = "test.png"; 
if (!$handle = fopen($filename, 'w')) { 
    echo "Cannot open file ($filename)"; 
    exit; 
} 
if (fwrite($handle, $image) === FALSE) { 
    echo "Cannot write to file ($filename)"; 
    exit; 
} 
fclose($handle); 
Смежные вопросы