jQuery+AJAX實現網頁無重新整理上傳_jquery

來源:互聯網
上載者:User

新年禮,提供簡單、易套用的 jQuery AJAX 上傳樣本及代碼下載。後台對檔案的上傳及檢查,以 C#/.NET Handler 處理 (可視需要改寫成 Java 或 PHP)。

有時做一個網站項目 (不論是否 ASP.NET),內附的 FileUpload 控制項,功能不足 (頁面必須重新整理、不支援 AJAX),或外觀太醜被使用者嫌棄 (卻無法透過 CSS 自訂外觀)。網路上雖已有許多可用的樣本,如: jQuery File Upload,但功能太強大、外觀複雜,欲僅取出部分功能來引用,反而不易。因此我參考了兩本書上、多個網路上的樣本,整合、改寫成此一樣本,標榜:功能簡單 (夠用就好)、外觀可自訂 (只用 HTML 的 div、span、input,不被特定廠商的控制項綁死)、日後做其他網站項目都便於使用 (公司其他程式員,不必再改寫一堆 jQuery、JavaScript、CSS)。
---------------------------------------------------------------
WizardWuUpload 上傳檔案(圖片)
日期: 2015/02/19
版本: v1.1
---------------------------------------------------------------
範例程式碼下載點:

(稍後奉上)
(執行本樣本,不用資料庫,但需要 IIS 或 Visual Studio)
---------------------------------------------------------------
執行方式:

用 Visual Studio 或 IIS 開啟網站,以任一種瀏覽器,執行 SingleUpload.html 或 MultiUpload.html。上傳後的檔案(圖片),存放在 /uploadFiles 檔案夾底下。
---------------------------------------------------------------


圖 1 樣本架構

---------------------------------------------------------------


圖 2 執行畫面 - 單一上傳 & 引用藍色CSS檔案


圖 3 執行畫面 - 單一上傳 & 引用綠色CSS檔案


圖 4 執行畫面 - 複數上傳 & 引用銀色CSS檔案

---------------------------------------------------------------
本樣本的功能:

* 上傳時用 jQuery 的 AJAX 處理,畫面不會 refresh 重新整理 (調用 jQuery Form 的 ajaxSubmit [5],非同步地提交表單)。
* 可自訂「上傳按鈕、進度條」的外觀、引用您想要的 CSS (本樣本提供:綠色、藍色、銀色,三種 CSS 檔案可引用)。
* 上傳期間,會顯示進度條。
* 上傳完後,會出現預覽圖。
* 上傳完後,會出現「刪除圖片」超串連,可讓使用者刪除剛上傳的圖片。
* 可限制上傳圖片的副檔名、檔案大小的上限 (由 C# / WizardWuUpload.ashx 控制),並會給使用者相關警示資訊。
* 外觀上 IE、FireFox、Chrome 都一致 (此點亦為 jQuery 的特性)。
* .html、.aspx 都可套用此樣本。若為 PHP 或 JSP,需自行改寫 WizardWuUpload.ashx,但不必改寫 jQuery。

本樣本的特性:

* 講求實用、網站項目中易於套用,而非功能強大、外觀華麗。
* 將 css、jQuery 抽出來成為獨立的共用檔案,方便項目中套用此樣本,不必每一頁重複撰寫。
* 將頁面上的 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 () {        //傳入的參數,為該 divUploadArea 區塊中,所有 DOM 對象(控制項) 的 id 編號,如: divUploadArea1、spanUploadSelect1、WizardWuFileUpload1、...        $(this).loadUploadContent('1'); //載入第一個上傳區塊 divUploadArea1 所需要的 form 及 jQuery 內容      });    </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名稱可重複" />          </div>          <!--顯示載入進度-->          <div class="UploadProgress" id="divUploadProgress1">            <span class="UploadBar" id="spanUploadBar1"></span><span class="UploadPercent" id="spanUploadPercent1">0%</span>          </div>          <!--顯示已經上傳的檔案名稱、上傳成功才會出現的「刪除圖片」字樣超串連、刪除成功才會出現的「刪除成功」字樣-->          <div class="ShowContentAfterUploadSuccess" id="divShowContentAfterUploadSuccess1"></div>          <!--顯示已經上傳的圖片-->          <div id="divShowImageAfterUploadSuccess1"></div>        </div>      </td>    </tr>  </table></body></html>

引用此樣本的 html

---------------------------------------------------------------
ASP.NET 內附 FileUpload 控制項的問題:

* 上傳時畫面會 refresh 重新整理,無法套用 AJAX / UpdatePanel 相關功能。
* 控制項的外觀,被微軟寫死,無法透過引用 CSS 改變外觀。
* Google Chrome 與 IE、FireFox,不同的瀏覽器,外觀上呈現會不一致。
---------------------------------------------------------------
網路上 jQuery File Upload 的問題:

http://blueimp.github.io/jQuery-File-Upload/
* 功能強大、外觀太複雜,想僅取出部分功能,來套用或改寫有難度。
---------------------------------------------------------------

小夥伴們仔細研究下吧,希望大家能夠喜歡本文。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.