HTML上傳檔案的多種方式

2022-03-09 05:07:58 字數 2974 閱讀 6599

基本上傳控制項

使用者點選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

拖放檔案的**,主要是定義dragoverdragenddrop這三個事件。

// 檢查瀏覽器是否支援拖放上傳。

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...