jQuery+ajax實(shí)現(xiàn)文件上傳功能
jQuery+ajax實(shí)現(xiàn)文件上傳功能(顯示文件上傳進(jìn)度),供大家參考,具體內(nèi)容如下
具體實(shí)現(xiàn)步驟
1、定義UI結(jié)構(gòu),引入bootstrap的CSS文件和jQuery文件
2、給上傳按鈕綁定點(diǎn)擊事件
3、驗(yàn)證是否選擇了文件
4、向FormData中追加文件
5、使用ajax發(fā)起上傳文件的請(qǐng)求
6、設(shè)置文件的路徑
7、使用xhr獲得文件上傳的進(jìn)度
8、當(dāng)文件上傳完成讓進(jìn)度條顯示綠色
<style> #loading { width: 20px; height: 20px; } #img { display: block; width: 200px; height: 200px; border-radius: 50%; background-color: #abcdef; opacity: .5; } </style> <body> <!--multiple可以選擇多個(gè)文件 --> <input type="file" multiple name="" id="ipt" multiple><button id="btn" type="submit">上傳文件</button> <img id="loading" src="../img/loading.gif" alt="" style="display: none;"> <!-- bootstrap中引入條件 --> <div class="progress" style="margin-top: 10px;width: 100px;margin-left: 10px;"> <div id="progress" class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"> 0% </div> </div> <!-- 顯示上傳到服務(wù)器的圖片 --> <img src="" alt="" id="img" style="display: none;"> <script src="../lib/jquery-1.11.0.min.js"></script> <script> $(function() { $('#btn').on('click', function() { // 獲取文件列表 var file = $('#ipt')[0].files // 判斷是否選擇了文件 if (file.length <= 0) { return alert('請(qǐng)上傳文件') } // 創(chuàng)建formdata var fd = new FormData() // 向formdata中傳入數(shù)據(jù) // fd.append() // file是一個(gè)偽數(shù)組 fd.append('avatar', file[0]) // 用ajax傳送數(shù)據(jù) $.ajax({ type: 'post', url: 'http://www.liulongbin.top:3006/api/upload/avatar', // 數(shù)據(jù)不需要編碼 contentType: false, // 數(shù)據(jù)對(duì)象不需要轉(zhuǎn)換成鍵值對(duì)格式 processData: false, data: fd, beforeSend: function() { $('#loading').show() }, complete: function() { $('#loading').hide() }, success: function(res) { // 判斷是否接收成功 if (res.status !== 200) { return alert(reg.msg) } $('#img').attr('src', 'http://www.liulongbin.top:3006' + res['url']).css('display', 'block') }, xhr: function xhr() { var xhr = new XMLHttpRequest() // 獲取文件上傳的進(jìn)度 xhr.upload.onprogress = function(e) { // e.lengthComputable表示當(dāng)前的進(jìn)度是否是可以計(jì)算,返回布爾值 if (e.lengthComputable) { // e.loaded表示下載了多少數(shù)據(jù), e.total表示數(shù)據(jù)總量 var percentComplete = Math.ceil((e.loaded / e.total) * 100) // 讓進(jìn)度條的寬度變化 $('#progress').css('width', percentComplete) // 在進(jìn)度條中顯示百分比 $('#progress').html(percentComplete + 'px') } } // 文件加載完成 xhr.upload.onload = function() { $('#progress').removeClass('progress-bar progress-bar-striped').addClass('progress-bar progress-bar-success') } return xhr } }) }) }) </script> </body>
效果演示(slow3g狀態(tài))
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- jQuery Ajax文件上傳(php)
- jquery ajax實(shí)現(xiàn)文件上傳功能實(shí)例代碼
- 基于HTML5 Ajax文件上傳進(jìn)度條如何實(shí)現(xiàn)(jquery版本)
- jquery插件ajaxupload實(shí)現(xiàn)文件上傳操作
- jQuery+ajax簡(jiǎn)單實(shí)現(xiàn)文件上傳的方法
- jQuery插件AjaxFileUpload實(shí)現(xiàn)ajax文件上傳
- 基于jquery ajax的多文件上傳進(jìn)度條過程解析
- jquery實(shí)現(xiàn)異步文件上傳ajaxfileupload.js
- jquery?ajax實(shí)現(xiàn)文件上傳提交的實(shí)戰(zhàn)步驟
相關(guān)文章
JavaScript jQuery 中定義數(shù)組與操作及jquery數(shù)組操作
這篇文章主要介紹了JavaScript jQuery 中定義數(shù)組與操作及jquery數(shù)組操作的相關(guān)資料,需要的朋友可以參考下2015-12-12jquery設(shè)置元素的readonly和disabled的寫法
Jquery的api中提供了對(duì)元素應(yīng)用disabled和readonly屬性的方法,在這里記錄下,感興趣的朋友可以練練手了2013-09-09jQuery表單驗(yàn)證插件formValidator(改進(jìn)版)
隨著jQuery被越來越多的人使用,基于jQuery的表單驗(yàn)證插件,也從無到現(xiàn)在比較流行的已經(jīng)有10個(gè)左右了2012-02-02Jquery+JSon 無刷新分頁(yè)實(shí)現(xiàn)代碼
基于jquery+json格式文件的無刷新分頁(yè)實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-04-04jquery實(shí)現(xiàn)用戶信息修改驗(yàn)證輸入方法匯總
這篇文章主要介紹了jquery實(shí)現(xiàn)用戶信息修改驗(yàn)證輸入方法,實(shí)例匯總了jquery常用的提交、驗(yàn)證、判定、修改等相關(guān)技巧,非常實(shí)用,需要的朋友可以參考下2015-07-07jQuery niceScroll滾動(dòng)條錯(cuò)位問題的解決方法
下面小編就為大家?guī)硪黄猨Query niceScroll滾動(dòng)條錯(cuò)位問題的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02Asp.net下使用Jquery Ajax傳送和接收DataTable的代碼
對(duì)于習(xí)慣使用GridView的人來說,前臺(tái)頁(yè)面需要?jiǎng)討B(tài)添加表格的行數(shù),是一件痛苦的事。GridView處理這種事情相當(dāng)麻煩,你點(diǎn)擊“新增一行”,需要回傳到服務(wù)器。2010-09-09jquery插件之信息彈出框showInfoDialog(成功/錯(cuò)誤/警告/通知/背景遮罩)
某某同學(xué)最近寫了個(gè)基于jquery的信息彈出插件showInfoDialog,該插件對(duì)背景進(jìn)行遮罩,然后彈出信息顯示框,信息顯示種類包括(操作成功/錯(cuò)誤信息/警告信息/通知信息)感興趣的朋友可以了解下2013-01-01