我使用下面的powershell和REST-API来上传附件
class TfsHelper{
#...
[string]UploadPng([string]$TfsProject, [string]$PngFileName) {
$uri = "http://$organization/$TfsProject/_apis/wit/attachments?fileName=image.png&api-version=5.1"
$strPngBase64 = [convert]::ToBase64String((Get-Content $PngFileName -Encoding byte))
$rtn = Invoke-RestMethod -Uri $uri -Method POST -Headers $this.Header `
-Body $strPngBase64 `
-ContentType 'application/octet-stream'
return $rtn.url
}
}
函数UploadPng成功执行,我也可以得到包含上传的PNG url和uuid的响应
但是当我打开浏览器中的响应网址检查上传的PNG时,我发现上传的图像没有按预期显示,与原始图像不一样。
第一节第一节第一节第一节第一次
那么,UploadPng函数有什么问题呢?
1条答案
按热度按时间ippsafx71#
我可以在使用相同的Powershell脚本时重现相同的问题。
要解决此问题,可以使用powershell命令:
[IO.File]::ReadAllBytes("$PngFileName")
读取文件,无需将其转换为base64。然后,您可以将内容类型更改为application/json
。或者您可以使用
-InFile
创建附件。下面是PowerShell示例:
更新日期: