這次帶給大家html裡怎麼實現非同步上傳文件,html裡實作異步上傳文件的注意事項有哪些,以下就是實戰案例,一起來看一下。
程式碼如下:
<form action="/hehe" method="post"> <input type="text" value="hehe"/> <input type="submit" value="upload" id="upload"/> </form>
這是html中最常見最簡單的表單提交方式,但是這種方式必須會切換頁面,也許有些時候我們希望可以在同一個頁面與伺服器進行交互,並不希望提交完表單後切換到另一個頁面去,怎麼辦呢,這裡分享幾種表單提交的方式。
先介紹一種曲線救國的解法,以上的程式碼片段不用改變,只要加入以下程式碼
<iframe id="uploadFrame" name="uploadFrame"></iframe>
並且在form表單中加入target屬性,target=uploadFrame,target屬性需要與iframe中的id的值一致(或是name屬性的值,試試看就知道了)。
簡單解釋一下,其實這裡我們的表單提交之後也是刷新了,但是為什麼沒有跳轉頁面呢,就是因為這個iframe,其實我們刷新在iframe中了,而iframe是空的,也就跟沒有刷新是一樣的了,就給我們一種異步的感覺,這並不是正統的方法,但是也不失為一種曲線救國方式,當然很多情況下這種方式也不適用,比如我們希望提交完成表單後從伺服器取回點東西,這種方法顯然就不行了,這裡我們還需要真正的非同步提交表當。
(二)jquery異步提交表單
這裡介紹的是jquery的一種提交表單的插件ajaxupload,使用方式也是比較簡單的
<body> <form action="/hehe" method="post"> <input type="text" value="hehe"/> <input type="button" value="upload" id="upload"/> <!--<input type="button" value="send" onclick="send()"/>--> </form> <script> (function(){ new AjaxUpload("#upload", { action: '/hehe', type:"post", data: {}, name: 'textfield', onSubmit: function(file, ext) { alert("上传成功"); }, onComplete: function(file, response) { } }); })(); </script> </body>
這裡貼出了主要的程式碼,在頁面渲染完成之後,我們就使用一個自執行的函數給id為upload的按鈕添加異步上傳事件,new AjaxUpload(id,object)中的id對應的就是綁定物件的id,至於第二個參數中介紹一下data是附加的資料,name可以隨意,onSubmit函數是上傳檔案之前的回呼函數,第一個參數file是檔案名,ext是檔案的後綴名,至於onComplete函數中可以處理伺服器傳回的資料。以上是兩種簡單的檔案上傳客戶端的實作。
我相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
相關閱讀:
以上是html裡怎麼實作異步上傳文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!