【发布时间】:2021-04-29 02:50:27
【问题描述】:
我正在使用 Google API V3。我有一个场景,我使用谷歌驱动器选择器从驱动器中选择一个文件(任何扩展名)并将其发送到服务器进行操作(由于与项目相关的机密信息,无法提及很多细节)。
编辑:我正在尝试使用驱动器选择器从谷歌驱动器中选择一个 mpp 文件(MS Project)并将该文件发送到服务器。服务器将 MPP 文件转换为 JSON 并将其返回给客户端,这就是我想要做的。我可以使用普通的输入标签来实现这一点,但要求是使用谷歌驱动器选择器。
我能够通过选择器获取文件,使用 Google 文件 API (files.get) 获取文件详细信息,但我不知道进一步将其转换为 JavaScript 文件类型(类似于输入标签我们上传一个文件)。
showDrivePicker({
title: 'Pick an mpp file',
selectFolderEnabled: true,
enableMyDrive: true
}, function pickerCallback( data ) {
if ( data[google.picker.Response.ACTION] == google.picker.Action.PICKED ) {
var doc = data[google.picker.Response.DOCUMENTS][0],
url = doc[google.picker.Document.URL].split('/view'),
name = doc.name;
gapi.client.files.get({
fileId: 'xxxxx',
corpora: 'teamDrive',
supportsTeamDrives: true,
includeTeamDriveItems: true,
includeTeamDriveItemsRequired: true,
includeItemsFromAllDrives: true,
fields: '*',
}).then((response) => {
// I have the downloadUrl here, but what should I do with it?
})
}
}, me);
请帮助解决这个问题。
谢谢
【问题讨论】:
-
我想这会回答你的问题:stackoverflow.com/questions/60839431/…。基本上将
alt: 'media'添加到get 选项中,response.body将包含文件的二进制文件。 -
添加 alt:media 为我提供了文件的二进制文件,但是当我将响应转换为 JavaScript 文件类型并将其发送到服务器时,它无法详细说明数据不是预期的类型.
-
现在我有了文件的二进制文件,如何将其转换为正确的文件类型?
-
您要下载和上传什么?
标签: javascript file google-api google-drive-api blob