基本上傳控制項
使用者點選submit
的時候,動態插入乙個iframe
var form = $("#upload-form");
form.on('submit',function() );
動態插入iframe
**
var seed = math.floor(math.random() * 1000);
var id = "uploader-frame-" + seed;
var callback = "uploader-cb-" + seed;
var iframe = $('');
var url = form.attr('action');
最後一行,它為表單新增target屬性。指向動態插入的iframe
。這樣上傳結束後伺服器將結果返回iframe
視窗。所以當前頁面不會跳轉。其次,在它的action
屬性指定的上傳**的後面新增乙個引數,使得伺服器知道**函式的名稱。這樣就能將伺服器返回的資訊,從iframe
視窗傳到上層頁面。
伺服器返回的資訊應該如下:
小筆記
if (window.top!=window.self) //判斷是否是頂層視窗
然後在當前網頁中定義**函式
window[callback] = function(data);
ajax上傳檔案,放在表單的submit
事件的**函式中。
form.on('submit',function() );
進行ajax上傳
// 檢查是否支援formdata
if(window.formdata) else
};xhr.send(formdata);
}
為ajax上傳檔案新增進度條
預先在html
中新增progress
元素
0
定義progress
的**函式
xhr.upload.onprogress = function (event)
};
// 檢查是否支援filereader物件
if (typeof filereader != 'undefined') ;
if (acceptedtypes[document.getelementbyid('upload').files[0].type] === true) ;
reader.readasdataurl(document.getelementbyid('upload').files[0]);
}}
先在頁面中放置乙個容器,用來接收拖放的檔案
對它設定樣式:
#holder
#holder.hover
拖放檔案的**,主要是定義dragover
、dragend
和drop
這三個事件。
// 檢查瀏覽器是否支援拖放上傳。
if('draggable' in document.createelement('span'));
holder.ondragend = function () ;
holder.ondrop = function (event) ;
}
file_io = params[:upload]
#可以獲取臨時檔案
file_io.tempfile
**首先新建乙個xmlhttprequest物件
var xhr = new xmlhttprequest();
然後想伺服器傳送乙個http請求
xhr.open('get', 'example.com');
xhr.send();
接著等待伺服器回應,還需要監控xmlhttprequest物件狀態的變化
xhr.onreadystatechange = function() else
}
xmlhttprequest物件的主要屬性
新版本xmlhttprequest的新功能
請求時限設定
xhr.timeout = 200;
設定事件xhr.ontimeout = function(event)
formdata物件
首先新建乙個formdata物件
var formdata = new formdata();
為formdata物件新增表單項
傳送formdata物件
xhr.send(formdata);
formdata可以獲取變單項var form = document.getelementbyid('myform');
var formdata = new formdata(form);
xhr.open('post', form.action);
xhr.send(formdata);
js、css、html 前端檔案上傳多種方式
上傳方式 1 表單上傳方式 最場景 最簡單的方式 上面的是挺簡單的,but 重新整理了,這個體驗大多數場景中讓人接受不了,最簡單的處理方式設定submit 返回 false 2 表單公升級版 formdata 有些場景中我們不一樣會使用form,或者說不想用,那麼formdata就是乙個很好的選擇了...
HTML 多種方式使用列表
在ol標籤中使用start屬性,設定起始的序號 在li標籤中使用value屬性,改變列表內的編號順序 例 編號第乙個從10開始,第四個重20開始 start 10 c 程式設計 資訊系統開發與管理 資料結構導論 value 20 演算法設計 軟體工程 ol 在ol標籤中使用type屬性,便可指定編號...
C C 讀取檔案的多種方式
int fopentest while 1 printf c c fclose file return 0 include include int main char buf 1024 while 1 printf s n buf fclose fp return 0 windows include...