jQuery+AJAX實現(xiàn)網(wǎng)頁無刷新上傳
新年禮,提供簡單、易套用的 jQuery AJAX 上傳示例及代碼下載。后臺對文件的上傳及檢查,以 C#/.NET Handler 處理 (可視需要改寫成 Java 或 PHP)。
有時做一個網(wǎng)站項目 (不論是否 ASP.NET),內(nèi)附的 FileUpload 控件,功能不足 (頁面必須刷新、不支援 AJAX),或外觀太丑被用戶嫌棄 (卻無法透過 CSS 自定義外觀)。網(wǎng)路上雖已有許多可用的示例,如: jQuery File Upload,但功能太強(qiáng)大、外觀復(fù)雜,欲僅取出部分功能來引用,反而不易。因此我參考了兩本書上、多個網(wǎng)路上的示例,整合、改寫成此一示例,標(biāo)榜:功能簡單 (夠用就好)、外觀可自定義 (只用 HTML 的 div、span、input,不被特定廠商的控件綁死)、日后做其他網(wǎng)站項目都易于使用 (公司其他程序員,不必再改寫一堆 jQuery、JavaScript、CSS)。
---------------------------------------------------------------
WizardWuUpload 上傳文件(圖片)
日期: 2015/02/19
版本: v1.1
---------------------------------------------------------------
示例代碼下載點:
(稍后奉上)
(執(zhí)行本示例,不用數(shù)據(jù)庫,但需要 IIS 或 Visual Studio)
---------------------------------------------------------------
執(zhí)行方式:
用 Visual Studio 或 IIS 開啟網(wǎng)站,以任一種瀏覽器,執(zhí)行 SingleUpload.html 或 MultiUpload.html。上傳后的文件(圖片),存放在 /uploadFiles 文件夾底下。
---------------------------------------------------------------
圖 1 示例架構(gòu)
---------------------------------------------------------------
圖 2 執(zhí)行畫面 - 單一上傳 & 引用藍(lán)色CSS文件
圖 3 執(zhí)行畫面 - 單一上傳 & 引用綠色CSS文件
圖 4 執(zhí)行畫面 - 復(fù)數(shù)上傳 & 引用銀色CSS文件
---------------------------------------------------------------
本示例的功能:
* 上傳時用 jQuery 的 AJAX 處理,畫面不會 refresh 刷新 (調(diào)用 jQuery Form 的 ajaxSubmit [5],異步地提交表單)。
* 可自訂「上傳按鈕、進(jìn)度條」的外觀、引用您想要的 CSS (本示例提供:綠色、藍(lán)色、銀色,三種 CSS 文件可引用)。
* 上傳期間,會顯示進(jìn)度條。
* 上傳完后,會出現(xiàn)預(yù)覽圖。
* 上傳完后,會出現(xiàn)「刪除圖片」超連接,可讓用戶刪除剛上傳的圖片。
* 可限制上傳圖片的擴(kuò)展名、文件大小的上限 (由 C# / WizardWuUpload.ashx 控制),并會給用戶相關(guān)警示信息。
* 外觀上 IE、FireFox、Chrome 都一致 (此點亦為 jQuery 的特性)。
* .html、.aspx 都可套用此示例。若為 PHP 或 JSP,需自行改寫 WizardWuUpload.ashx,但不必改寫 jQuery。
本示例的特性:
* 講求實用、網(wǎng)站項目中易于套用,而非功能強(qiáng)大、外觀華麗。
* 將 css、jQuery 抽出來成為獨(dú)立的共用文件,方便項目中套用此示例,不必每一頁重復(fù)撰寫。
* 將頁面上的 DOM 對象(控件) 的 id 特別命名過,方便項目中套用此示例。
---------------------------------------------------------------
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無刷新上傳文件 - 頁面只有一個上傳</title> <!--<link rel="stylesheet" href="css/WizardWuUpload_Blue.css" />--> <link rel="stylesheet" href="css/WizardWuUpload_Green.css" /> <!--<link rel="stylesheet" href="css/WizardWuUpload_Silver.css" />--> <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="js/jquery.form.js"></script> <script type="text/javascript" src="js/WizardWuUpload.js"></script> <script type="text/javascript"> $(function () { //傳入的參數(shù),為該 divUploadArea 區(qū)塊中,所有 DOM 對象(控件) 的 id 編號,如: divUploadArea1、spanUploadSelect1、WizardWuFileUpload1、... $(this).loadUploadContent('1'); //載入第一個上傳區(qū)塊 divUploadArea1 所需要的 form 及 jQuery 內(nèi)容 }); </script> </head> <body> <h2>WizardWu 無刷新上傳文件 - 頁面只有一個上傳</h2> <table> <tr> <td> <p>只允許上傳 jpg/jpeg/gif/png/bmp 格式的圖片,圖片大小不能超過 1 MB</p> <div class="UploadArea" id="divUploadArea1"> <div class="UploadButton"> <span id="spanUploadSelect1">選擇文件</span> <!--上傳用的file控件--> <input id="WizardWuFileUpload1" type="file" name="此處name可隨便命名,name名稱可重復(fù)" /> </div> <!--顯示加載進(jìn)度--> <div class="UploadProgress" id="divUploadProgress1"> <span class="UploadBar" id="spanUploadBar1"></span><span class="UploadPercent" id="spanUploadPercent1">0%</span> </div> <!--顯示已經(jīng)上傳的文件名、上傳成功才會出現(xiàn)的「刪除圖片」字樣超連接、刪除成功才會出現(xiàn)的「刪除成功」字樣--> <div class="ShowContentAfterUploadSuccess" id="divShowContentAfterUploadSuccess1"></div> <!--顯示已經(jīng)上傳的圖片--> <div id="divShowImageAfterUploadSuccess1"></div> </div> </td> </tr> </table> </body> </html>
引用此示例的 html
---------------------------------------------------------------
ASP.NET 內(nèi)附 FileUpload 控件的問題:
* 上傳時畫面會 refresh 刷新,無法套用 AJAX / UpdatePanel 相關(guān)功能。
* 控件的外觀,被微軟寫死,無法透過引用 CSS 改變外觀。
* Google Chrome 與 IE、FireFox,不同的瀏覽器,外觀上呈現(xiàn)會不一致。
---------------------------------------------------------------
網(wǎng)路上 jQuery File Upload 的問題:
http://blueimp.github.io/jQuery-File-Upload/
* 功能強(qiáng)大、外觀太復(fù)雜,想僅取出部分功能,來套用或改寫有難度。
---------------------------------------------------------------
小伙伴們仔細(xì)研究下吧,希望大家能夠喜歡本文。
- jQuery的ajax中使用FormData實現(xiàn)頁面無刷新上傳功能
- 使用jQuery ajaxupload插件實現(xiàn)無刷新上傳文件
- Jquery基于Ajax方法自定義無刷新提交表單Form實例
- jQuery Ajax 上傳文件處理方式介紹(推薦)
- jQuery Ajax文件上傳(php)
- 一個簡單的jQuery插件ajaxfileupload.js實現(xiàn)ajax上傳文件例子
- jquery ajax實現(xiàn)文件上傳功能實例代碼
- 基于HTML5 Ajax文件上傳進(jìn)度條如何實現(xiàn)(jquery版本)
- jquery插件ajaxupload實現(xiàn)文件上傳操作
- PHP+jQuery+Ajax實現(xiàn)多圖片上傳效果
- Jquery+AJAX實現(xiàn)無刷新上傳并重命名文件操作示例【PHP后臺接收】
相關(guān)文章
JQERY limittext 插件0.2版(長內(nèi)容限制顯示)
JQERY limittext 插件為長內(nèi)容增加一個顯示更多的功能2010-08-08jQuery-1.9.1源碼分析系列(十)事件系統(tǒng)之事件體系結(jié)構(gòu)
這篇文章主要介紹了jQuery-1.9.1源碼分析系列(十)事件系統(tǒng)之事件體系結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2015-11-11使用jquery-easyui的布局layout寫后臺管理頁面的代碼詳解
這篇文章主要介紹了使用jquery-easyui的布局layout寫后臺管理頁面的代碼詳解,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06為Jquery EasyUI 組件加上清除功能的方法(詳解)
下面小編就為大家?guī)硪黄獮镴query EasyUI 組件加上清除功能的方法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04Jquery find與filter函數(shù)區(qū)別 說明
基本是find子元素找,filter是平級找2010-05-05