我試圖將文件上載到SharePoint 2010:上傳文件到SharePoint 2010中使用PowerShell和OData的API
Function Add-Attachments()
{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[int]$Id,
[Parameter(Mandatory=$True)]
[string[]]$Paths
)
BEGIN {}
PROCESS {
$url = "http://server/resource/_vti_bin/listdata.svc/TheList($Id)/Attachments"
Foreach ($Path in $Paths) {
Write-Verbose "Attaching $Path ..."
$headers = @{
'Slug' = "TheList|$Id|$(Split-Path $path -Leaf)"
}
$Payload = @{filename=(Split-Path $path -Leaf);filecontent=([IO.File]::ReadAllBytes($path))}
Invoke-WebRequest -Uri $url -Method Post -UseDefaultCredentials -Body $Payload -Headers $headers
} # Foreach
} # PROCESS
END {}
}
Add-Attachments -Id 1234 -Paths 'C:\Users\gandalf\Desktop\test.txt' -verbose
我收到一條錯誤:
Invoke-WebRequest :
An error occurred while processing this request. At C:\Users\gandalf\Documents\WindowsPowerShell\Scripts\SP\SharePoint2010.ps1:382 char:13 + Invoke-WebRequest -Uri $url -Method Post -UseDefaultCredentials -Bod ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
**編輯**
文件的原始內容:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.
該腳本在服務器上創建一個文件,但與此內容:
filename=test.txt&filecontent=Lorem+ipsum+dolor+sit+amet%2c+consectetur+adipiscing+elit.+Donec+a+diam+lectus.+Sed+sit+amet+ipsum+mauris.+Maecenas+congue+ligula+ac+quam+viverra+nec+consectetur+ante+hendrerit.+Donec+et+mollis+dolor.+Praesent+et+diam+eget+libero+egestas+mattis+sit+amet+vitae+augue.+Nam+tincidunt+congue+enim%2c+ut+porta+lorem+lacinia+consectetur.+Donec+ut+libero+sed+arcu+vehicula+ultricies+a+non+tortor.+Lorem+ipsum+dolor+sit+amet%2c+consectetur+adipiscing+elit.+Aenean+ut+gravida+lorem.+Ut+turpis+felis%2c+pulvinar+a+semper+sed%2c+adipiscing+id+dolor.+Pellentesque+auctor+nisi+id+magna+consequat+sagittis.+Curabitur+dapibus+enim+sit+amet+elit+pharetra+tincidunt+feugiat+nisl+imperdiet.+Ut+convallis+libero+in+urna+ultrices+accumsan.+Donec+sed+odio+eros.+Donec+viverra+mi+quis+quam+pulvinar+at+malesuada+arcu+rhoncus.+Cum+sociis+natoque+penatibus+et+magnis+dis+parturient+montes%2c+nascetur+ridiculus+mus.+In+rutrum+accumsan+ultricies.+Mauris+vitae+nisi+at+sem+facilisis+semper+ac+in+est.
我缺少什麼?我是否需要包含內容長度?設置MIME類型?
你有使用Fiddler想看看從服務器的流量?如果在內部檢查ULS日誌 – Max
有幾個問題:1)您是否嘗試將文件附加到現有列表項目,或者您是否想將文件上傳到文件夾? /附件應該特定於附加到列表項目。 2)這是從服務器場中的服務器上傳的,還是這個遠程的? 3)代碼中382指向哪一行? (因爲你只有35條線,我認爲還有更多)。 – Graham
1.將文件附加到現有列表項目2.從工作站上傳3.需要研究 – craig