如何在javascript中检测要打开的文件是否被写保护?

问题描述 投票:0回答:1

我需要知道文件是否被写保护(在javascript中)。到目前为止我只知道如何获取以下四个信息:

  • 文件名,例如使用 document.getElementById('file').files[0].name
  • 文件大小,类似地
  • 文件类型
  • 文件修改日期

我需要的是文件是否被写保护的信息。像 getProperties 之类的东西。周围有人了解我在寻找什么吗?提前非常感谢您。

上下文是:我想使用这个小函数以 .json 格式保存一些数据做光盘:

function save2JSON (jsonData, fName) { window.showSaveFilePicker({
suggestedName : fName+".json",
types : [{
  description: "JSON file",
  accept: { "application/json": [".json"] },
  lastModified:new Date().getTime()
}],}) .then(async handler => {

let data = jsonData;

let writable = await handler.createWritable();
await writable.write(JSON.stringify(data,null,4));
await writable.close();}).catch(err => console.error(err));}

我的网站告诉我到目前为止,如果:

  • 文件存在
  • 文件受保护

但那太晚了而且太少了。我想在尝试保存文件之前(即打开它时)知道该文件是否受保护。理想情况下,一旦我尝试保存文件,该函数会建议我使用另一个名称,因此无论如何都要保存文件。有什么想法吗?再次非常感谢您。

javascript file properties
1个回答
0
投票

通过 HTML 输入类型文件上传的文件是特定类型的 BLOB,这些元素具有很少的可用于检查文件元数据的属性,并且安全属性或权限不包含在其中。

所以...简短的回答是您在上传文件时无法获取该信息。

长答案...好吧,在上传过程中,您将整个文件作为字节流(某种程度上)所以...我想应该可以,给定已知的文件类型,查找您需要的信息全部内容。但是,这是一个相当大的“但是”,它可能很难找到,并且您需要为不同的文件类型开发不同的搜索方法。绝对不是一个理想的结果。也许通过有关您的用例的更多信息,我们可以提供更广泛的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.