【问题标题】:Preserve fileExtension of drive file when uploading上传时保留驱动文件的文件扩展名
【发布时间】:2014-01-22 17:43:52
【问题描述】:

我的应用从谷歌驱动器加载一个文件。 fileExtension 属性设置为“peardeck”,因为初始文件名为“Untitled Pear Deck.peardeck”。然后我的用户将文件重命名为“My Pear Deck”,标题中没有扩展名,但元数据中的fileExtension属性仍然是peardeck

但是:当我 PUT 到 /upload/drive/v2/files/fileID?uploadType=media 时,文件扩展名被清除为“”。这意味着云端硬盘 UI 不再提供使用我的应用打开文件的功能。

当我向它上传数据时,如何阻止扩展被覆盖?

【问题讨论】:

  • 你可以通过 mime 类型而不是扩展名进行关联吗?
  • 我认为 Google 使用扩展程序来确定默认应用程序,因此扩展程序保持不变很重要
  • 不是这样。您可以使用 API 控制台按 MIME 类型进行关联。我有一个应用程序配置为打开类型为“text/html”的文件,无论名称/扩展名如何。

标签: google-drive-api


【解决方案1】:

尝试使用?uploadType=multipart 并将元数据部分留空。请参阅drive documentation for details on multipart

【讨论】:

  • 不幸的是,我看到了相同的行为 - fileExtension 属性返回空白。我什至尝试在元数据部分将 fileExtension 设置为 peardeck。对我来说有趣的是文档说 fileExtension 是不可变的。废话!
  • 如果我在元数据中设置 title = "wtf.peardeck",则文件被重命名,扩展名保持为 .peardeck。
【解决方案2】:

我的最终解决方案/解决方法是忘记文件扩展名并完全依赖 mimetype,正如 pinoyyid 建议的那样。如果您的应用无法打开其中一种正常的 mime 类型,您可以使用 application/vnd.google.drive.ext-type.yourcustomextension

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 2023-04-04
    • 2011-12-02
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多