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);
}