相关疑难解决方法(0)

使用 Android 的本机文件选择器时,防止 HTML 文件输入选择 Google Drive 中的文件

目前我正在处理一个允许用户将文件上传到 Firebase 存储的页面。在 Android 上通过 Google Chrome 打开网站并从标准 HTML 文件输入中选择要上传的文件时,它使用 Android 的本机文件选择器。

在大多数情况下,用户会选择存储在设备本地的文件,但文件选择器还会显示他们的 Google 云端硬盘文件,并且当前不会阻止用户选择这些文件之一。该文件在 Javascript 中作为 File 对象返回,但是当尝试上传到 Firebase Storage 时,它​​会抛出错误:“net::ERR_UPLOAD_FILE_CHANGED”并最终超过它的重试限制。

为了防止用户混淆,我想阻止用户在 Android 的文件选择器中选择 Google Drive 文件,或者至少认识到它无法上传并警告用户。

我考虑过检查 input 元素返回的 File 对象,但没有任何迹象表明本地文件与 Google Drive 文件。

<input type="file" id="upload_input" class="hide"/>
Run Code Online (Sandbox Code Playgroud)
$("#upload_input").change(function(e) {
  if (!e.target.files) {
    return;
  }
  const file = e.target.files[0];
  uploadFile(file);
});


uploadFile(file) {

  ...

  const storageRef = firebase.storage().ref();
  const fileRef = storageRef.child(`${userID}/uploads/${file.name}`);
  const uploadTask = fileRef.put(file);

  ...

}

Run Code Online (Sandbox Code Playgroud)

javascript google-chrome firebase google-drive-api firebase-storage

13
推荐指数
1
解决办法
4088
查看次数