Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';你不能将某些文件上传到谷歌硬盘吗?_Javascript_Node.js_Google Drive Api_Google Api Nodejs Client - Fatal编程技术网

Javascript Can';你不能将某些文件上传到谷歌硬盘吗?

Javascript Can';你不能将某些文件上传到谷歌硬盘吗?,javascript,node.js,google-drive-api,google-api-nodejs-client,Javascript,Node.js,Google Drive Api,Google Api Nodejs Client,我使用GoogleDriveAPIv3创建了一个简单的应用程序,它获取我服务器上已经存在的文件并将其上传到GoogleDrive 我已经能够成功地上传一个.json文件,没有太大问题。但是,当我尝试上载任何其他文件类型时,如.pdf或.jpeg,它似乎不起作用。该程序将在Google Drive中创建一个具有适当名称和文件扩展名的文件,但我似乎无法打开该文件 Google Drive通常会告诉我预览或转换文件时出错,下载文件似乎也没有帮助。 非常感谢您对缓解此问题的任何帮助 以下是我的上传功能:

我使用GoogleDriveAPIv3创建了一个简单的应用程序,它获取我服务器上已经存在的文件并将其上传到GoogleDrive

我已经能够成功地上传一个
.json
文件,没有太大问题。但是,当我尝试上载任何其他文件类型时,如
.pdf
.jpeg
,它似乎不起作用。该程序将在Google Drive中创建一个具有适当名称和文件扩展名的文件,但我似乎无法打开该文件

Google Drive通常会告诉我预览或转换文件时出错,下载文件似乎也没有帮助。 非常感谢您对缓解此问题的任何帮助

以下是我的上传功能:

function uploadFile(auth) {
  var drive = google.drive('v3');
  var fileMetadata = {
    'name': name
  };
  var media = {
    mimeType: mime,
    body: fs.createReadStream(destination_path)
  };

  drive.files.create({
    auth: auth,
    resource: fileMetadata,
    media: media,
    fields: 'id',
  }, function(err, file) {
    if (err) {
      // Handle error
      console.error(err);
    } else {
      console.log('File Id: ', file.id);
    }
  });
}

我正在使用范围:

mime的值是多少?当我使用jpeg图像文件测试代码时,它被设置为“image/jpeg”,当我使用pdf测试代码时,它被设置为“application/pdf”,这是正确的。下一步是确保创建的文件具有正确的mime类型。您可以设置
字段:
或使用在线工具检查。然后下载二进制文件并检查它是否与原始文件相同(如md5sum)。好的,所以我使用在线工具检查mime类型,看起来还可以。mime类型确实与文件类型对应。我使用md5sums将上传的文件与原始文件进行比较,结果不一样。然后我猜问题出在
body:fs.createReadStream(destination_path)
它更复杂,但使用可恢复上传方法更好,所以我建议谷歌提供一些例子