首页 > js怎么实现修改本地文件

js怎么实现修改本地文件

首先不使用IE的对象。我的思路是用上传的方法上传文件,让其上传到本地,而不是上传到后台,然后用js读取上传的文件和修改,最后再下载下来,不知这个方法行不行。或者有没其他方法。另外不是很了解从<input file="">到后台接收文件之间发生了什么事


http://.com/q/1010000000655751/a-1020000000655760


第一次碰到这种需求,好奇找资料,参考公子的答案,写了个DEMO,兼容确实无解,你需要借助后台上传做中转了那样。

javascript<!doctype>
<html>
  <body>
    <input type="file" name="file" id="file" />
    <textarea cols="50" rows="20"></textarea>
    <button>保存</button>
    <script type="text/javascript">
      var name = '未命名';
      var input = document.getElementById('file');
      var textarea = document.getElementsByTagName('textarea')[0];

      input.addEventListener('change', function () {
        var files = document.getElementById('file').files;
        var file = files.item(0);
        name = file.name;
        var reader = new FileReader();
        reader.onloadend = function (e, content) {
          textarea.value = e.target.result;
        };
        reader.readAsText(file, 'utf-8');
      });

      function fake_click(obj) {
        var ev = document.createEvent("MouseEvents");
        ev.initMouseEvent(
          "click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null
        );
        obj.dispatchEvent(ev);
      }

      document.getElementsByTagName('button')[0].addEventListener('click', function(e) {
        var urlObject = window.URL || window.webkitURL || window;
        var export_blob = new Blob([textarea.value]);
        var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
        save_link.href = urlObject.createObjectURL(export_blob);
        save_link.download = name;
        fake_click(save_link);
      });
    </script>
  </body>
</html>
【热门文章】
【热门文章】