首頁 > php教程 > PHP开发 > 主體

jquery元件WebUploader檔案上傳用法詳解

高洛峰
發布: 2016-12-07 14:32:27
原創
2529 人瀏覽過

WebUploader是由Baidu WebFE(FEX)團隊開發的一個簡單的以HTML5為主,FLASH為輔的現代文件上傳組件,下文來為各位演示一下關於jquery WebUploader文件上傳組件的用法。

使用WebUploader還可以批量上傳文件、支援縮圖等等眾多參數選項可設置,以及多個事件方法可調用,你可以隨心所欲的定制你要的上傳組件。

jquery元件WebUploader檔案上傳用法詳解

接下來我以圖片上傳實例,跟大家講解如何使用WebUploader。

HTML

我們先將css和相關js檔案載入。

<link rel="stylesheet" type="text/css" href="css/webuploader.css">
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" src="js/webuploader.min.js"></script>
登入後複製

   

然後我們需要準備一個按鈕#imgPicker,和一個用來存放新增的文件資訊清單的容器#fileList,在body中加入以下程式碼:

<div id="uploadimg">
 <div id="fileList" class="uploader-list"></div>
 <div id="imgPicker">选择图片</div>
</div>
登入後複製

RIP   Web Uploader實例:

var uploader = WebUploader.create({
 auto: true, // 选完文件后,是否自动上传
 swf: &#39;js/Uploader.swf&#39;, // swf文件路径
 server: &#39;upload.php&#39;, // 文件接收服务端
 pick: &#39;#imgPicker&#39;, // 选择文件的按钮。可选
 // 只允许选择图片文件。
 accept: {
 title: &#39;Images&#39;,
 extensions: &#39;gif,jpg,jpeg,bmp,png&#39;,
 mimeTypes: &#39;image/*&#39;
 }
});
登入後複製

   

接著監聽fileQueued事件,也就是當有檔案加入的時候,透過uploader.makeThumb來建立圖片預覽圖。

uploader.on( &#39;fileQueued&#39;, function( file ) {
 var $list = $("#fileList"),
 $li = $(
  &#39;<div id="&#39; + file.id + &#39;" class="file-item thumbnail">&#39; +
  &#39;<img  alt="jquery元件WebUploader檔案上傳用法詳解" >&#39; +
  &#39;<div class="info">&#39; + file.name + &#39;</div>&#39; +
  &#39;</div>&#39;
  ),
 $img = $li.find(&#39;img&#39;);
  
  
 // $list为容器jQuery实例
 $list.append( $li );
  
 // 创建缩略图
 uploader.makeThumb( file, function( error, src ) {
 if ( error ) {
  $img.replaceWith(&#39;<span>不能预览</span>&#39;);
  return;
 }
  
 $img.attr( &#39;src&#39;, src );
 }, 100, 100 ); //100x100为缩略图尺寸
});
登入後複製

   

最後是上傳狀態提示了,當檔案上傳過程中, 上傳成功,上傳失敗,上傳完成都分別對應uploadProgress, uploadSuccess, 

uploadError, uploadComplete。

// 文件上传过程中创建进度条实时显示。
uploader.on( &#39;uploadProgress&#39;, function( file, percentage ) {
 var $li = $( &#39;#&#39;+file.id ),
 $percent = $li.find(&#39;.progress span&#39;);
  
 // 避免重复创建
 if ( !$percent.length ) {
 $percent = $(&#39;<p class="progress"><span></span></p>&#39;)
  .appendTo( $li )
  .find(&#39;span&#39;);
 }
  
 $percent.css( &#39;width&#39;, percentage * 100 + &#39;%&#39; );
});
  
// 文件上传成功,给item添加成功class, 用样式标记上传成功。
uploader.on( &#39;uploadSuccess&#39;, function( file, res ) {
 console.log(res.filePath);//这里可以得到上传后的文件路径
 $( &#39;#&#39;+file.id ).addClass(&#39;upload-state-done&#39;);
});
  
// 文件上传失败,显示上传出错。
uploader.on( &#39;uploadError&#39;, function( file ) {
 var $li = $( &#39;#&#39;+file.id ),
 $error = $li.find(&#39;div.error&#39;);
  
 // 避免重复创建
 if ( !$error.length ) {
 $error = $(&#39;<div class="error"></div>&#39;).appendTo( $li );
 }
  
 $error.text(&#39;上传失败&#39;);
});
  
// 完成上传完了,成功或者失败,先删除进度条。
uploader.on( &#39;uploadComplete&#39;, function( file ) {
 $( &#39;#&#39;+file.id ).find(&#39;.progress&#39;).remove();
});
登入後複製
   


到這裡,我們實現了一個簡單的圖片上傳實例,點擊「選擇圖片」會彈出檔案選擇對話框,當選擇圖片後,即進入上傳圖片流程,會將圖片對應的縮略圖現實在列表裡。

常用選項設定與事件呼叫

Web Uploader提供了豐富的API選項設定與事件呼叫。


常用的事件說明:jquery元件WebUploader檔案上傳用法詳解

jquery元件WebUploader檔案上傳用法詳解

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板