Google Drive上载包含powershell的多部分mime base64编码文件:格式错误的多部分正文错误

Google Drive上载包含powershell的多部分mime base64编码文件:格式错误的多部分正文错误,powershell,google-drive-api,Powershell,Google Drive Api,令牌检索都解决了 上传文件到谷歌硬盘 获取错误 以下是我正在使用的powershell命令: $response=Invoke RestMethod-Uri”“-Method Post-Headers$uploadHeaders-Body$uploadBody 下面是变量$uploadBody的字符串 --314159265358979323846 Content-Type: application/json; charset=UTF-8 { "description": "

令牌检索都解决了

上传文件到谷歌硬盘

获取错误

以下是我正在使用的powershell命令:

$response=Invoke RestMethod-Uri”“-Method Post-Headers$uploadHeaders-Body$uploadBody

下面是变量$uploadBody的字符串

--314159265358979323846 Content-Type: application/json; charset=UTF-8 { "description": "TestCSV", "name": "test-emp.csv", "originalFilename": "test-emp.csv" } --314159265358979323846 Content-Transfer-Encoding: base64 Content-Type: application/octet-stream c0FNQWNjb3VudE5hbWUsRU1QX05VTQ0KYnNtaXRoLDc3Mzk5Mg0KbHNvbmcsMzM3MTEwDQpnc3Vkbyw2NDkwNTc --314159265358979323846-- --314159265358979323846 内容类型:application/json;字符集=UTF-8 { “说明”:“TestCSV”, “名称”:“测试emp.csv”, “原始文件名”:“测试emp.csv” } --314159265358979323846 内容传输编码:base64 内容类型:应用程序/八位字节流 C0FNQWnjb3Vude5HBWusru1QX05VTQ0KyntaxRoldc3MZK5Mg0KbHnVBMCSMZM3MTEWDQPNc3VkbyW2NDKWntc --314159265358979323846-- 此操作失败-仅更改了数据文件:

--314159265358979323846 Content-Type: application/json; charset=UTF-8 { "description": "TestCSV", "name": "csv3.csv", "originalFilename": "csv3.csv" } --314159265358979323846 Content-Transfer-Encoding: base64 Content-Type: application/octet-stream c2VxLGZpcnN0LGxhc3QNCjEsQW15LEJhcmtlcg0KMixMZWUsU2FsYXphcg0KMyxFc3RlbGxhLEtlbm5lZHkNCg --314159265358979323846-- --314159265358979323846 内容类型:application/json;字符集=UTF-8 { “说明”:“TestCSV”, “名称”:“csv3.csv”, “originalFilename”:“csv3.csv” } --314159265358979323846 内容传输编码:base64 内容类型:应用程序/八位字节流 C2VxLGZPCNN0LGXHC3QNCJESQW15LEJHCMTLCG0KMMZWUS2FSYXPHCG0KMYxFC3RLBGXHLETLBM5LZHKNCG --314159265358979323846-- 为了完整起见,这里是$uploadHeaders的标题IDictionary参数

Name Value ---- ----- Authorization Bearer ya29.GlxbBiz86xKlRnjzQY2z70vHtWfL4sr28BvX-OKio8PbcEfJ0l7tQgx9btNqMdanYXG_WzSD74WD_15903vn0mYO0G0uI8lez5g77Z_W0gKrIRh_s... Content-Type multipart/related; boundary=314159265358979323846 Content-Length 400 名称值 ---- ----- 授权持有人ya29.GLXBZ86XKLRNJZQY2Z70VHTWFL4SR28BVX-OKio8PbcEfJ0l7tQgx9btNqMdanYXG_WzSD74WD_15903vn0mYO0G0uI8lez5g77Z_W0gKrIRh_s。。。 内容类型多部分/相关;边界=314159265358979323846 内容长度400 我已经读了很多关于这方面的书,并确保在有效载荷之前有两个
r
n。任何指点都将不胜感激


谢谢大家!

上传文件后,您必须重命名该文件

$sourceFile = 'C:\temp\allisv22018201810101009.csv'

$sourceItem = Get-Item $sourceFile

# If uploading to a Team Drive, set this to 'true'
$supportsTeamDrives = 'false'

# Set the file metadata
$uploadMetadata = @{
    originalFilename=$sourceItem.Name
    name=$sourceItem.Name
    description="TestCSV"
}

# Set the upload headers
$uploadHeaders = @{
    Authorization="Bearer $accessToken"
    "Content-Type" = "application/json"
}

# Perform the upload
try {
    $response = Invoke-RestMethod -Uri "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart" -Method Post -Headers $uploadHeaders -InFile $SourceFile
    $urifile = "https://www.googleapis.com/drive/v3/files/$($response.id)"
    $renameResponse = Invoke-RestMethod -Uri $urifile -Method Patch -Headers $uploadHeaders -Body '{ "name":"HappyFile.csv" }'

如果成功上载文件,它将返回$urifile中的值,您可以使用该值重命名文件。

是否上载文件?只需使用
-infle
参数即可。再也不需要手动分割你的文件了。这很有效!非常感谢您,他们是无可救药的!我把它改成这样:这样文件就可以了。但是标题是“无标题的”&我似乎无法改变它。想法?抱歉,我没有早点发布: