【问题标题】:Cannot recognize image upload at Google Drive in js无法识别 js 中 Google Drive 上的图片上传
【发布时间】:2020-08-25 05:02:39
【问题描述】:

我正在尝试使用 oauth 令牌和获取 url 在谷歌驱动器上上传图像文件。 https://developers.google.com/drive/api/v3/manage-uploads 执行分段上传,HTTP。 当我尝试上传时,获取 url 响应返回状态 200,并且在谷歌驱动器中,文件在那里。但是看不到(识别不支持img)。

这是我的标题

method: post 
Authorization: `Bearer ${token}`
Content-Type: `multipart/related; boundary=${boundaryString}`
Content-Length: ${body.Length}

这是我的身体

--`${boundaryString}`
Content-Type: application/json; charset=UTF-8

{"name":"myimage.png","description":"Upload image","mimeType":"image/png"}

--`${boundaryString}`
Content-Type: image/png; Content-Transfer-Encoding: base64

data:image/png;base64,iVBO......TkSuQmCC
--`${boundaryString}`--

回复:

status: 200 url: "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"
body: {
  id: "~~~~"
  kind: "drive#file"
  mimeType: "image/png"
  name: "myimage.png"

当我开车时,它存在。它的详细信息收集(名称,描述,mimeType), 但无法像其他图像一样识别。(不支持文件格式。) 当我检查<img src ="data:image/png;base64,iVBO......TkSuQmC" /> 它有效。 能告诉我有什么问题吗?

【问题讨论】:

    标签: javascript http file-upload encoding google-drive-api


    【解决方案1】:

    这个修改怎么样?

    修改点:

    • 请从数据部分删除Content-Type: image/png;
    • 请删除base64数据的头部。

    当以上几点反映到您的请求正文中时,它变成如下。

    修改后的请求正文:

    --`${boundaryString}`
    Content-Type: application/json; charset=UTF-8
    
    {"name":"myimage.png","description":"Upload image","mimeType":"image/png"}
    
    --`${boundaryString}`
    Content-Transfer-Encoding: base64
    
    iVBO......TkSuQmCC
    --`${boundaryString}`--
    

    注意:

    • 在这种情况下,换行符很重要。请注意这一点。

    • 在此修改中,假设您的访问令牌可用于将文件上传到 Google Drive。

    • 虽然我不确定您的实际脚本,但如果您使用 Javascript,那么以下修改后的脚本怎么样?

          var data = `--${boundaryString}
        Content-Type: application/json; charset=UTF-8
      
        {"name":"myimage.png","description":"Upload image","mimeType":"image/png"}
      
        --${boundaryString}
        Content-Transfer-Encoding: base64
      
        iVBO......TkSuQmCC
        --${boundaryString}--`;
      

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 2012-09-10
      相关资源
      最近更新 更多