发布网友 发布时间:2022-04-23 07:16
共3个回答
懂视网 时间:2022-04-23 11:37
这次给大家带来怎样使用JavaScript保存文本数据,使用JavaScript保存文本数据的注意事项有哪些,下面就是实战案例,一起来看一下。JavaScript保存文本数据示例,当然不仅仅是文本其他类型的也是可以的
首先上代码
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script> var fl; function g(f) { fl = null; if(f) { document.getElementById("fname").innerText = f.name; document.getElementById("fsize").innerText = f.size; fl = f; } } function dataURLSave1() { if(fl) { var reader = new FileReader(); reader.onload = function(e) { ck(e.target.result); }; reader.readAsDataURL(fl); } } function dataURLSave2() { if(fl) { var reader = new FileReader(); reader.onload = function(e) { ck('data:text/plain;charset=utf-8,' + e.target.result); }; reader.readAsText(fl); } } function objectURLSave() { if(fl) { ck(URL.createObjectURL(fl)); setTimeout(function(){ URL.revokeObjectURL(fl);//用URL.revokeObjectURL()来释放这个object URL },200); } } function ck(href) { document.getElementById("hf").href = href; document.getElementById("hf").download = fl.name; document.getElementById("hf").click(); } </script> </head> <body> <input type="file" onchange="g(this.files[0])"> <div>文件名:<span id="fname"></span></div> <div>大小:<span id="fsize"></span></div> <button onclick="dataURLSave1()">保存(dataURL方式1)</button> <button onclick="dataURLSave2()">保存(dataURL方式2)</button> <button onclick="objectURLSave()">保存(objectURLSave方式)</button> <a id="hf" href="" download="download"></a> </body></html>
实现分类
一般情况下使用浏览器自带功能实现导出类似与文本文件的方式简单可以分为两种
1.DataURL
2.ObjectURL
原理
其实原理跟平时下载是一样的,只不过把下载的连接替换成了以上两种URL
比较
DataURL方式
在示例代码中DataURL方式1是将文本文件直接读取成DataURL,DataURL方式2是通过读取文本内容然后将内容与(data:text/plain;charset=utf-8,...)进行拼接
DataURL方式1和DataURL方式2对文件文本编码有一定要求,容易出现乱码
ObjectURL方式
ObjectURL是将内存中的对象转为ObjectURL,相比DataURL的话ObjectURL比较不容易出现乱码,但DataURL比较固定ObjectURL比较不固定
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
相关阅读:
怎样用JS编写模拟器
ES6的set数据结构和map数据结构
ES6里新的数组API详解
热心网友 时间:2022-04-23 08:45
JS实现不了这个功能,客户端脚本是没有权限在服务器端写文件的,要不然人家随便写个JS脚本把你服务器端的ASP/JSP/PHP文件改掉你怎么办?热心网友 时间:2022-04-23 10:03
用javascript是不可能往服务器端保存文件的..