使用javascript读取文件并将其发送到服务器

使用javascript读取文件并将其发送到服务器,javascript,vue.js,google-api,google-drive-api,Javascript,Vue.js,Google Api,Google Drive Api,我正在使用GoogleDriveAPI,我正在尝试从url下载一个文件,将其设置为变量并发送到后端。请注意,我使用的是谷歌硬盘的javascript选择器 旁注:首先,我尝试将id\u令牌和fileId发送到后端,并尝试访问该文件,但我无法使用相关作用域对用户进行身份验证,因为该用户是通过javascript而非php进行身份验证的 因此,我决定使用axios获取该文件,并将其保存到一个变量中,然后将该文件发送到我的后端 var downloadUrl = typeof file.exportL

我正在使用GoogleDriveAPI,我正在尝试从url下载一个文件,将其设置为变量并发送到后端。请注意,我使用的是谷歌硬盘的javascript选择器

旁注:首先,我尝试将
id\u令牌
fileId
发送到后端,并尝试访问该文件,但我无法使用相关作用域对用户进行身份验证,因为该用户是通过javascript而非php进行身份验证的

因此,我决定使用axios获取该文件,并将其保存到一个变量中,然后将该文件发送到我的后端

var downloadUrl = typeof file.exportLinks !== 'undefined' ? 
                file.exportLinks['application/pdf'] : file.webContentLink

axios.get(downloadUrl, {
          headers: {
              Authorization: 'bearer ' + gapi.client.getToken().access_token,
             'Access-Control-Allow-Origin': '*'
          }
 }).then(function (response) {
      console.log(response)
 }).catch(function (error) {
      console.log(error);
 });
我试过用这个,但这个会

加载失败:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”


使用axios,如何从url下载文件并将其设置为变量?

使用驱动器API下载文件的支持操作已在以下文档中说明:

根据您要执行的下载类型(文件、谷歌文档或内容链接),您将使用以下URL之一:

  • 下载文件-files.get with alt=媒体文件资源
  • 下载并导出Google文档-files.export
  • 将用户链接到文件-文件资源中的WebContent链接
我自己可以使用Picker API通过webcontentlink下载图像文件:

function downloadImage(data) {
      if (data.action == google.picker.Action.PICKED) {

        var fileId = data.docs[0].id; 
        var webcontentlink = ' https://docs.google.com/uc?id='+fileId+'&export=download'

        window.open( webcontentlink,'image/png');
      }
}

希望您能从实现开始。

未经用户许可,谷歌不会允许这样做。看到是的,但在这一点上,我需要将它发送到我的后端服务器以下载文件,因为我使用picker时,用户在我的后端实际上没有经过身份验证,因此我无法在我的后端下载文件。您的方法可以工作,但我需要在变量中分配此文件,并在Post请求中将其发送到。是否可以下载前端带有javascript的文件,然后像“文件类型输入文件”一样发送到后端?