【问题标题】:Attached from google drive(cloud storage) in android File gives: err_upload_file_changed error从 android 文件中的谷歌驱动器(云存储)附加:err_upload_file_changed 错误
【发布时间】:2020-10-24 02:43:55
【问题描述】:

我有一个 HTML 表单 哪里有pdf文件附件字段() 最后,我用所有的字段表单数据发出一个 post 请求

android 文件选择器何时打开并选择字段

  • 如果我从存储中选择 pdf 文件 - 没有错误 - API 发布成功
  • 但是,如果我从 android 文件选择器中的 google 驱动器中选择一个文件 - API 发布失败 - net::err_upload_file_changed

PS:如果从谷歌驱动器中选择,我已经设法向用户显示一条消息请从存储中选择,但我不希望我真的想要能够发布带有附件的文件

【问题讨论】:

  • 我遇到了同样的问题,最初也认为它与谷歌驱动器有关。但是,在 Microsoft Edge 上尝试相同的操作在 Android 上运行良好。在网上找到一些信息,它与 Chrome 有某种关系,但没有设法找到解决方案。您如何捕获此错误以显示“请从存储中选择”?
  • @PyotrLi 你是对的,它甚至适用于旧版本的 chrome
  • @PyotrLi 显示消息切片文件并尝试在其上使用 arrayBuffer() 例如:file.slice(0,1).arrayBuffer().then(//no problem).catch(//show message) 不是最干净的方法,但它有效
  • 这里的错误报告供参考:bugs.chromium.org/p/chromium/issues/…

标签: javascript android html google-chrome file-upload


【解决方案1】:

正如 cmets 中所述,这是 Chrome (https://bugs.chromium.org/p/chromium/issues/detail?id=1063576) 的一个错误。

还可能引发以下错误:NotReadableError: The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.

作为一种解决方法,在进一步使用之前克隆您的文件或 Blob:

const buffer = await file.arrayBuffer();
const clone = new File([buffer], file.name, { type: file.type });

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 2019-10-27
    • 1970-01-01
    • 2019-06-07
    • 2017-05-24
    • 1970-01-01
    • 2017-02-10
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多