javascript - js怎么实现修改本地文件
大家讲道理
大家讲道理 2017-04-10 15:07:44
[JavaScript讨论组]

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
迷茫

http://segmentfault.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>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号