A. 如何使用javascript生成txt格式文件保存到本地,要求跨浏览器支持,怎么做呢
最近看孝蚂握巧庆到好几个人问这问题了,其实要实现并不难,而且还是跨浏览器的,但并不完美。
IE是通过ActiveXObject,前提是浏览者的安全设置中允许此项且同意使用。
Firefox/Chrome/Safari/Opera是通过a元素的href属性,加上base64数据来实现(data物升URI)。
下面的代码在IE6-9,Firefox19,Chrome26,Safari5.0.5,Opera12.15测试通过。
【注意】base64函数和完整代码在空间:hi..com/keneks/item/a8b10b04fd862f016c904813
<script type="text/javascript">
/* var Base64 = {}; */
window.onload = function() {
var save = document.getElementById("save");
// IE
if(/msie/i.test(navigator.userAgent)) {
save.onclick = function() {
var path = prompt("输入保存路径和文件名", "C:\test.txt");
var content = document.getElementById("content").value;
content = content.replace(/ /g, " ");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile(path, true);
s.WriteLine(content);
s.Close();
};
}
// Firefox/Chrome/Safari/Opera
else {
// 鼠标经过 a 的时候就开始 base64 编码
save.onmouseover = function() {
var content = document.getElementById("content").value;
this.setAttribute("href",
"data:application/octet-stream;base64,"
+ Base64.encode(content));
};
}
};
</script>
B. 如何通过javascript获得本地文件大小的
//如何通过javascript获得本地文件大小的
<HTML>
<HEAD>
<SCRIPT>
functiongetFileSize(fileName){
window.oldOnError=window.onerror;
window.onerror=function(err){
if(err.indexOf('utomation')!=-1){搏悔
alert('fileaccessnotpossible');
returntrue;}迅明
elsereturnfalse;亩银告};
varfso=newActiveXObject('Scripting.FileSystemObject');varfile=fso.GetFile(fileName);window.onerror=window.oldOnError;returnfile.Size;}functionshowImageDimensions(){alert(this.width+'x'+this.height);}</SCRIPT>
</HEAD>
<BODY><
FORMNAME="formName">
<INPUTTYPE="file"NAME="fileName"><BR><INPUTTYPE="button"VALUE="检查文件大小"ONCLICK="alert(getFileSize(this.form.fileName.value))">
</FORM>
</BODY>
</HTML>
C. js文件存放在哪里
已经下载了,位置就应该在临时文件夹中。
D. js如何保存文件
js是客户端解释型脚本语言,依赖于浏览器,为了客户端安全,不能操作客户端电脑资源的,所以下载服务端的文件,直接html链接指向那个文件就可以的,具体保存到哪里,不同浏览器的处理会不一样,IE下载后会弹出保存对话框,chrome会直接保存到默认下载目录。
E. js文件缓存到本地
对js文件进行hash,每次客户端请求的时候取回hash,如果缓存的js的hashcode与取回的hashcode不一致,则重新download脚本文件,否则不用。
F. 怎么用js实现把数据存储到本地
可以用localstorge或者是浏览器本地数据库,这对浏览器有要求,低版本的IE是不支持的
G. js文件缓存到本地
对js文件进行hash,每次客户端请求的时候取回hash,如果缓存的js的hashcode与取回的hashcode不一致,则重新download脚本文件,否则不用。
H. js中本地存储使用的api
JavaScript 中本亮谈地存储使用的 API 有以下两种:
1. LocalStorage:用于存储数据的接口,可以存储字符串类型的数据。可用来实现类似 cookie 的功能,但相比较而言使用更为方便。LocalStorage 中存州高储的数据会一直保留,直到通过 JavaScript 代码或手动清除浏览器缓存才会被清除。
2. SessionStorage:类似 LocalStorage,但它仅在窗口关闭前有效。与 LocalStorage 不同的是,SessionStorage 的数敬迹碰据会在窗口或标签页关闭后被清除。因此对于短暂的存储需求,SessionStorage 更为适合。
简单的存储可以使用如下代码:
```javascript
// 存储数据到LocalStorage中
localStorage.setItem('name', 'JavaScript');
// 从LocalStorage中获取数据
localStorage.getItem('name');
// 删除LocalStorage中的数据
localStorage.removeItem('name');
// 存储数据到SessionStorage中
sessionStorage.setItem('name', 'JavaScript');
// 从SessionStorage中获取数据
sessionStorage.getItem('name');
// 删除SessionStorage中的数据
sessionStorage.removeItem('name');
```
I. JS-超大文件上传-如何上传文件-大文件上传
可以试试这样
前端通过 input type = "file" 接收文件
然后使用文件的 slice 的方法对文件进行分片
将每一片提交到后台依次提交到后台,提交时通过 formData 提交,添加几个字段
(1). 这次上传文件的惟一 id
(2). 上传的状态,是开始,还是上传中,还是上传结束
(3). 分片的位置,比如是第一片,第二片
(4). 分片的数据
后端当接收到一个文件 id 的结束标识时,把对应的分片按位置数据拼接起来就行
J. jQuery或者js保存文件到本地
functionfake_click(obj){
varev=document.createEvent("MouseEvents");
ev.initMouseEvent(
"click",true,false,window,0,0,0,0,0
,false,false,false,false,0,null
);
obj.dispatchEvent(ev);
}functionexport_raw(name,data){
varurlObject=window.URL||window.webkitURL||window;
varexport_blob=newBlob([data]);
varsave_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);
}