Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编辑要上载的文件_Javascript_Html - Fatal编程技术网

Javascript 编辑要上载的文件

Javascript 编辑要上载的文件,javascript,html,Javascript,Html,我想能够编辑一个文件,已选择上传。我想搜索和替换文本的情况下,绝对文件应该是相对的 我注意到在文件API中我可以做一些,但我有点卡住了: document.getElementById('exampleInputFile').onchange = function(event) { var fileToLoad = event.target.files[0]; if (fileToLoad) { var reader = new FileReader(); reader

我想能够编辑一个文件,已选择上传。我想搜索和替换文本的情况下,绝对文件应该是相对的

我注意到在文件API中我可以做一些,但我有点卡住了:

document.getElementById('exampleInputFile').onchange = function(event) {
  var fileToLoad = event.target.files[0];

  if (fileToLoad) {
    var reader = new FileReader();
    reader.onload = function(fileLoadedEvent) {
      var textFromFileLoaded = fileLoadedEvent.target.result;
      //Use logic to remove absolute files
      //Upload S3
    };
    reader.readAsText(fileToLoad, 'UTF-8');
  }
};
我正在试图弄清楚现在如何将该文本转换为一个适当的文件,以便可以使用一个现有的api将其上载到S3,该api需要上面的:
event.target.files[0]
code返回一些内容


如果可以避免的话,我不希望服务器在这里处理任何繁重的工作(文件可以很容易地达到几兆字节,因为它们可以是3D模型)。

假设在文件到达S3存储桶时您知道文件的url,您可以使用http.get检索文件,它将提供文件的内容(我假设为纯文本文件)。然后,您可以解析该文件,并对内容进行任何需要的修改。如果文件已更改,您可以将其写回S3存储桶以替换原始文件。

在AWS上,您可以在触发事件时使用Lambda执行NodeJS代码(例如上载到指定存储桶)。

好的一点,我已经忘记了这一点,虽然@msj121可能更喜欢将其所有代码都放在内存中,但这可能会解决问题,因为它会避免使用我的服务器,但我希望避免使用S3本身,以防我想要更改服务器,或者更改开发/生产服务器的编码(我允许两者访问相同的S3实例)。我已经发布了客户端版本的一部分为什么你在第一篇文章中谈到S3?重点是我不想在服务器上处理。该文件将驻留在服务器之外,这就是我提到它的原因。我确实喜欢这个解决方案,但如果可行的话,我更喜欢客户端版本,我已经对问题进行了编辑以反映这一点。Sorry我希望避免服务器参与此编码过程,并让客户端处理解析文件的工作。据我所知,它有时可能相当于几兆字节。