如何解决文件上传问题通过使用谷歌驱动器API



我正在尝试使用google drive API上传文件。我正在使用多部分上传进行POST。文件正在上传,但没有父文件夹Id&没有文件名。我想设置文件名&文件在驱动器中的位置。请帮我解决这个问题。这是我的代码:

String body = '--not_so_random_boundarynContent-Type: application/json; charset=utf-8nContent-Disposition: form-data; name="metadata"n{"name":"test.txt","mimeType":"text/html","parents":[{"Id":"1pf0OL6YqwzE4nClKDcvQAMhe_rYKGs3o"}]}n--not_so_random_boundarynContent-Type: text/plainnContent-Disposition: form-data; name="file"nnThe file datan--not_so_random_boundary--';
Http http = new Http();
HttpRequest req1 = new HttpRequest();
req1.setEndpoint('https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart');
req1.setHeader('Authorization', 'Bearer ' + accesstoken);
//req1.setHeader('Content-Type', 'multipart/related; boundary=--not_so_random_boundary');
//req1.setHeader('Content-length', String.valueOf(body.length()));
req1.setBody(body);
req1.setMethod('POST');
HttpResponse resp1 = http.send(req1);
System.debug(resp1.getBody());

该文件是通过使用此代码创建的,但名称为"Untitled">&不在给定的文件夹Id中。

上传文件数据

创建请求的正文。根据多部分/相关内容类型[RFC 2387]格式化正文,其中包含两部分:

  • 元数据。元数据必须放在第一位,并且必须将Content-Type标头设置为application/json;charset=UTF-8。以JSON格式添加文件的元数据
  • 媒体。媒体必须排在第二位,并且必须具有任何MIME类型的Content-Type标头。将文件的数据添加到介质部件。用边界字符串标识每个部分,该字符串前面有两个连字符。此外,在最后一个边界字符串后添加两个连字符

如果你检查你的身体,你已经把元数据放在第二位了。

最新更新