从PHP中的Netsuite文件柜获取图像url

从PHP中的Netsuite文件柜获取图像url,php,netsuite,Php,Netsuite,是否可以使用PHP工具包获取Netsuite用于项目图像的url?使用此功能: function getProduct($id) { $service = new NetSuiteService(); $service->setSearchPreferences(false, 1000); $itemInfo = new SearchMultiSelectField(); $itemInfo->operator = "anyOf"; $itemInfo->

是否可以使用PHP工具包获取Netsuite用于项目图像的url?使用此功能:

function getProduct($id) {

  $service = new NetSuiteService();
  $service->setSearchPreferences(false, 1000);

  $itemInfo = new SearchMultiSelectField();
  $itemInfo->operator = "anyOf";
  $itemInfo->searchValue = array('internalId' => $id);

  $search = new ItemSearchBasic();
  $search->internalId = $itemInfo;

  $request = new SearchRequest();
  $request->searchRecord = $search;

  $searchResponse = $service->search($request);
  $products = $searchResponse->searchResult->recordList->record;

  return $products;

}
我可以得到商品信息。在信息中,netsuite给了我一个小片段(为了清洁起见,整个片段被截断):


这只是告诉我Netsuite文件柜中的文件名。如何使用PHP工具包自动下载该图像?

我想您应该看看:

["storeDisplayImage"]=>
 object(RecordRef)#20 (4) {
   ["internalId"]=>
    string(6) "758653"
    ["externalId"]=>
    NULL
    ["type"]=>
    NULL
    ["name"]=>
    string(26) "image_name.jpg"
  }
我找不到任何实际访问图像的方法,但如果可能的话,应该使用internalId(758653)进行搜索。通过URL访问图像时使用:

758653&c=ACCOUNT#&h=31578b297cc0be65db1f&expurl=T

问题在于URL末尾的随机散列。我不太清楚它是什么,但如果可以,您将能够构建该URL

编辑:NLAPIRoveURL可能对您有所帮助。尝试将internalId传递给NLAPIRoveURL,它可以动态提供该URL。

尝试以下操作:

$request2 = new GetRequest();
$request2->baseRef = new RecordRef();
$request2->baseRef->internalId = $product->storeDisplayImage->internalId;
$request2->baseRef->type = "file";
$getResponse2 = $this->service->get($request2);
if (!$getResponse2->readResponse->status->isSuccess) {
        echo "GET ERROR";
} else {
    $file = $getResponse2->readResponse->record;
    echo "GET SUCCESS, File name is " . $file->name;
    echo "<img src='".$file->url."'>";
}
$request2=newgetrequest();
$request2->baseRef=newrecordref();
$request2->baseRef->internalId=$product->storeDisplayImage->internalId;
$request2->baseRef->type=“file”;
$getResponse2=$this->service->get($request2);
如果(!$getResponse2->readResponse->status->isSuccess){
回显“获取错误”;
}否则{
$file=$getResponse2->readResponse->record;
echo“获得成功,文件名为“..$File->name;
回显“url.”“>”;
}

向我们展示一些要讨论的代码。我已经用代码更新了问题。您将在哪里使用此映像,在NetSuite内部还是外部?外部。我想将映像下载到我的服务器。
$request2 = new GetRequest();
$request2->baseRef = new RecordRef();
$request2->baseRef->internalId = $product->storeDisplayImage->internalId;
$request2->baseRef->type = "file";
$getResponse2 = $this->service->get($request2);
if (!$getResponse2->readResponse->status->isSuccess) {
        echo "GET ERROR";
} else {
    $file = $getResponse2->readResponse->record;
    echo "GET SUCCESS, File name is " . $file->name;
    echo "<img src='".$file->url."'>";
}