从PHP中的Netsuite文件柜获取图像url
是否可以使用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->
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."'>";
}