2011-10-26 53 views
2

我正在使用SoapClient將數據從共享點列表中提取出來。如果它是一個正常的文本字段,它工作正常,並給我的形象。我甚至可以將圖像附加到各個列表元素並將其鏈接到另一個字段並以此方式獲取圖像。問題在於,當我訪問該頁面時,它會要求我登錄到我的SharePoint站點帳戶,這顯然是我的站點的普通用戶無法完成的。SoapClient + PHP + Sharepoint +從列表中獲取圖像或GetItemsByIds

首先,如果有解決方法,這將是一個足夠的答案,因爲這是我理想的做法。

但是,如果更好的方法是製作圖片庫,然後從那裏拉圖片,那就不是問題。

基本上我需要知道的是如何使用圖像庫,也許GetItemsByIds方法?我對肥皂和一般的共享點都很陌生,所以我爲可能是微不足道的問題道了歉,但我真的需要知道如何做到這一點,並且我在互聯網上找不到解釋我需要知道的資源(如果有,鏈接它!)。請記住,我必須在PHP中執行此操作。

下面是一些代碼,我用它來拉列表數據:

<?php 
    $authParams = array(

    'login' => 'username', 
    'password' => 'pass' 
); 

$listName = "{GUID}"; 
$rowLimit = '500'; 
$wsdl = "list.wsdl"; 
$soapClient = new SoapClient($wsdl, $authParams); 

$params = array(
    'listName' => $listName, 
    'rowLimit' => $rowLimit; 
); 

echo file_get_contents($wsdl, FILE_TEXT, stream_context_create(array('http' => array('timeout' => 1))), 0, 1); 

$rawXMLresponse = null; 
try{ 
    $rawXMLresponse = $soapClient->GetListItems($params)->GetListItemsResult->any; 
} 
catch(SoapFault $fault){ 
    echo 'Fault code: '.$fault->faultcode; 
    echo 'Fault string: '.$fault->faultstring; 
} 
echo '<pre>' . $rawXMLresponse . '</pre>'; 

$dom = new DOMDocument(); 
$dom->loadXML($rawXMLresponse); 
$results = $dom->getElementsByTagNameNS("#RowsetSchema", "*"); 
?> 

//do the useful thing 

<?php 
unset($soapClient); 
?> 
+0

您是否爲SharePoint網站上的圖片庫啓用了匿名訪問?如果啓用了此功能,則不需要用戶名和密碼。 – Ken

+0

嗯,這很有趣,但它是需要登錄的列表,我似乎無法弄清楚如何從圖片庫拉東西。如果我可以在列表中做到這一點,我會怎麼做? –

+0

現在我想到了它,它可能會要求我登錄,只要我試圖得到的圖片在服務器上:/我真的需要知道如何讓這些圖片。 –

回答

0

這是與用戶權限的問題。一旦我們擁有了正確權限的帳戶,它就可以正常工作。