簡體   English   中英

如何在PHP中使用wsdl / SOAP保存圖像?

[英]How to save an image with wsdl / SOAP in PHP?

您好,我正在嘗試檢索通過wsdl作為變量傳遞的圖像

$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; 

}

這段代碼返回了$ product(一個數組)中的變量和數量,包括返回整個圖像的$ product-> image,但是我似乎無法以清晰的格式保存數據。.$ image數據的開頭看起來像這個而且很長,所以我不會全部發布...

‰PNG  IHDR88@x=€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");

任何幫助將非常感激。

謝謝

我收到了像您這樣的肥皂客戶的回應。 就我而言,以下代碼有效。

$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);

只是嘗試隨機的東西看看會發生什么...

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

將在屏幕上顯示圖像。我仍在嘗試找出如何將其另存為文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM