Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中使用wsdl/SOAP保存图像?_Php_Soap_Wsdl - Fatal编程技术网

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

如何在PHP中使用wsdl/SOAP保存图像?,php,soap,wsdl,Php,Soap,Wsdl,您好,我正在尝试检索作为变量通过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 So

您好,我正在尝试检索作为变量通过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");
任何帮助都将不胜感激


谢谢

只是想随便看看会发生什么

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

将在屏幕上显示图像我仍在尝试如何将其保存为文件

我收到了来自我的soap客户端(如您的客户端)的响应。 在我的例子中,下面的代码是有效的

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

imagepng(imagecreatefromstring($image),$imagename.'.png');我也面临这个问题。无法在SOAP UI中获取附件。我有不同类型的文件,如xls,pdf,png等。它应该使用SOAP用户界面下载。谢谢你的帮助,谢谢