程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在 JavaScript 中存储对文件的引用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在 JavaScript 中存储对文件的引用??

开发过程中遇到如何在 JavaScript 中存储对文件的引用?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在 JavaScript 中存储对文件的引用?的解决方法建议,希望对你解决如何在 JavaScript 中存储对文件的引用?有所启发或帮助;

我有一个 .xml 文件,其中包含批量货件中的物品清单。我需要能够解析该 .xml 文件并将其写入一个数组,然后该数组将显示在应用程序的表格中。

我计划的非常通用的伪代码是:

  • 创建一个可以接受 .xml 文件上传的按钮
  • 在变量中存储对该文件的引用
  • 调用函数以使用 .xml 中的数据填充新数组
  • 在表格中显示该数组

我被困在第二步(以某种方式临时存储该文件),但如果我必须修改第一步,我不会感到惊讶。

到目前为止,这是我的代码,它本质上只是一个按钮,要求在弹出窗口中上传文件

HTML:

<input type="file" ID="file" style="display:none;" />  
<button ID="button" name="button" value="Upload" onclick="importfileSELEctor();">importManifest</button>

JavaScript:

    var files = (function() { return document.getElementByID("file").click().files; })(); 
}

我想我的问题归结为:有没有办法在 JavaScript 中存储对文件的引用,以便我可以在该文件上调用相关函数?

解决方法

是的。从 input[type=file] 接受文件后,您可以使用 FileReader API 读取文件内容并将其存储在变量中。

HTML:

<input type="file-input" id="file" accept="text/xml" />

JavaScript:

const fileInput = document.querySELEctor('#file-input');

const domParser = new DOMParser();

window.addEventListener('change',async () => {
   const file = fileInput.files[0];

   const xmlText = await readFileAsync(filE);

   const xmlDoc = domParser.parseFromString(xmlText,"text/xml");

   // run commands over xmlDoc
});

async function readFileAsync(filE) {
   const fileReader = new FileReader();

   return new Promise((resolve,reject) => {
      fileReader.addEventListener('error',() => reject(fileReader.error));
      fileReader.addEventListener('load',() => {
         resolve(fileReader.result);
      });

      fileReader.readAsText(file,"UTF-8");
   });
}

这将读取您通过输入选择的文件并将其解析为 XML DOM 树文档,您可以针对该文档运行查询。您可以查看有关 DOMParser here 的更多信息。

大佬总结

以上是大佬教程为你收集整理的如何在 JavaScript 中存储对文件的引用?全部内容,希望文章能够帮你解决如何在 JavaScript 中存储对文件的引用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:如何在