![](/img/trans.png)
[英]Unable to open Excel when i run build (vstest) in azure devops pipeline
[英]Unable to open the Excel file attached to work item in Azure Devops
我正在創建一個工具,用於使用 Azure Devops REST API 將 excel 文件附加到工作項。我能夠將 excel 文件添加到工作項,但是當我嘗試打開它時,它只是說“文件格式或文件擴展名無效” . 我感謝任何建議或任何投入。
編輯:根據 Lance-Li 的建議,我將 excel 文件轉換為字節並將其發送到請求正文中,如下所示
byte[] filedata = File.ReadAllBytes(filepath);
dynamic WorkItem = new List<dynamic>() {
new
{
filedata,
}
};
var WorkItemValue = new StringContent(JsonConvert.SerializeObject(WorkItem),Encoding.UTF8, "application/json-patch+json");
現在使用 content-type=application\\octet-stream 將上述工作項值發送到 post 方法。 但我仍然面臨格式問題。我做錯了什么嗎?
通常我們調用Attachments-Create (將附件上傳到附件存儲)然后添加一個附件(將附件從附件存儲添加到工作項)以將本地附件添加到工作項。
問題原因:
當我們使用first rest api(Attachments - Create)上傳附件時,我們應該小心。 在 post 請求中, filename=xxx
沒有接收到文件的任何路徑。 它不會從桌面或其他文件夾中獲取文件。
經過多次測試,我重現了與您相同的問題。 我還發現,如果我們運行 post 請求,它實際上只是創建了一個同名的新文件,而不是獲取本地文件。 例如,如果我有一個包含just for test
內容的本地test.txt
文件,在我的請求正文中我有"User text content to upload"
,結果是獲得一個名為test.txt
附件,其內容為"User text content to upload"
。
所以我認為你可以上傳一個帶有文本內容的xx.xlsx
文件。 這就是為什么我們收到file foramt not valid
錯誤的原因。
兩種解決方法:
1.上傳為二進制文件,將excel文件轉換為二進制文件,並將二進制內容粘貼到請求正文中。 (關於是否可以轉換excel以及如何轉換,這是另一個問題,所以我不在這里討論它)
2.我最終找到的另一種解決方法是在Invoke-RestMethod
命令中使用-Infile
並且效果很好!
(如果你正在使用類似postman
運行API,則contentType => application/octet-stream
,體=> binary
)
我關於Attachments-Create
Powershell 腳本:
$token = "YourPat"
$url="https://dev.azure.com/YourOrgName/_apis/wit/attachments?fileName=YourFileName.xlsx&api-version=5.1"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$filepath="YourFilePath\YourFileName.xlsx"
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -InFile $filepath -ContentType application/octet-stream
Write-Host $response
希望以上都能幫到你:)而且由於最初問題的原因只是關於第一個api的使用,所以我不會在這里談論第二個......
另外:如果有人使用 C# 客戶端 api 上傳二進制文件,請嘗試使用 contenttype application\\json
,來自dhulipala murali 的信息。 如果有人使用 PS/郵遞員, application/octet-stream
在我身邊工作得很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.