jQuery插件WebUploader實(shí)現(xiàn)文件上傳
最近在項(xiàng)目中用到了百度的文件圖片上傳插件WebUploader,分享給大家。
WebUploader是由Baidu WebFE(FEX)團(tuán)隊(duì)開發(fā)的一個(gè)簡單的以HTML5為主,F(xiàn)LASH為輔的現(xiàn)代文件上傳組件。在現(xiàn)代的瀏覽器里面能充分發(fā)揮HTML5的優(yōu)勢,同時(shí)又不摒棄主流IE瀏覽器,沿用原來的FLASH運(yùn)行時(shí),兼容IE6+,iOS 6+, android 4+。兩套運(yùn)行時(shí),同樣的調(diào)用方式,可供用戶任意選用。 采用大文件分片并發(fā)上傳,極大的提高了文件上傳效率。
需要在http://fex.baidu.com/webuploader/download.html點(diǎn)擊打開鏈接下載WebUploader
// 初始化Web Uploader***上傳圖片
var uploader = WebUploader.create({
// 選完文件后,是否自動上傳。
auto: true,
// 文件接收服務(wù)端地址,自動生成縮略圖需要后端完成。
server: '/common/uploadFile?imageZip=1',
// 選擇文件的按鈕。可選。
// 內(nèi)部根據(jù)當(dāng)前運(yùn)行是創(chuàng)建,可能是input元素,也可能是flash.
pick: '#sendimg',
fileNumLimit: 5,
//allowMagnify: false,
// 只允許選擇圖片文件。
accept:{
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}
});
// 當(dāng)有文件添加進(jìn)來的時(shí)候
uploader.on( 'fileQueued', function( file ) {
var $li = $(
'<div style="float:right" id="' + file.id + '" class="delimg">' +
'<img class="addimg"><div class="closeimg">×</div>' +
'</div>'
),
$img = $li.find('img');
// $list為容器jQuery實(shí)例
$("#piccon").append( $li );
// 創(chuàng)建縮略圖
// 如果為非圖片文件,可以不用調(diào)用此方法。
// thumbnailWidth x thumbnailHeight 為 100 x 100
uploader.makeThumb( file, function( error, src ) {
if ( error ) {
$img.replaceWith('<span>不能預(yù)覽</span>');
return;
}
$img.attr( 'src', src );
}, 100, 100 );
$li.on('click', function() {
$(this).remove();
})
});
// 文件上傳過程中創(chuàng)建進(jìn)度條實(shí)時(shí)顯示。
uploader.on( 'uploadProgress', function( file, percentage ) {
var $li = $( '#'+file.id ),
$percent = $li.find('.progress span');
// 避免重復(fù)創(chuàng)建
if ( !$percent.length ) {
$percent = $('<p class="progress"><span></span></p>')
.appendTo( $li )
.find('span');
}
$percent.css( 'width', percentage * 100 + '%' );
});
// 文件上傳成功,給item添加成功class, 用樣式標(biāo)記上傳成功。
uploader.on( 'uploadSuccess', function( file,response ) {
imgurl=response.fileName;//這里可以拿到后臺返回的圖片名稱
//alert(imgurl);
$( '#'+file.id ).addClass('upload-state-done');
});
// 文件上傳失敗,顯示上傳出錯。
uploader.on( 'uploadError', function( file ) {
var $li = $( '#'+file.id ),
$error = $li.find('div.error');
// 避免重復(fù)創(chuàng)建
if ( !$error.length ) {
$error = $('<div class="error"></div>').appendTo( $li );
}
$error.text('上傳失敗');
});
// 完成上傳完了,成功或者失敗,先刪除進(jìn)度條。
uploader.on( 'uploadComplete', function( file ) {
$( '#'+file.id ).find('.progress').remove();
});
更多精彩內(nèi)容,請點(diǎn)擊《jQuery上傳操作匯總》,進(jìn)行深入學(xué)習(xí)和研究。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery實(shí)現(xiàn)點(diǎn)擊查看大圖并以彈框的形式居中
這篇文章主要介紹了jQuery實(shí)現(xiàn)點(diǎn)擊查看大圖并以彈框的形式居中的代碼,代碼簡單易懂,需要的朋友參考下2016-08-08
Jquery中使用show()與hide()方法動畫顯示和隱藏圖片
以前我們在js中如果要隱藏顯示一個(gè)元素我們需要利用display等于none來設(shè)置并且還沒有效果,現(xiàn)在在jquery中有了hide();我們可以利用hide()方法來操作,希望本文章給大家所有幫助。2015-10-10
基于jQuery創(chuàng)建鼠標(biāo)懸停效果的方法
這篇文章主要介紹了基于jQuery創(chuàng)建鼠標(biāo)懸停效果的方法,實(shí)例分析了jQuery實(shí)現(xiàn)鼠標(biāo)特效的原理與詳細(xì)步驟,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
jquery1.5.1中根據(jù)元素ID獲取元素對象的代碼
盡管聽說jquery的大名幾年了,但是一直沒有使用過。這兩天想在項(xiàng)目中使用被一些小細(xì)節(jié)折騰的夠嗆,看來jquery沒有傳說中的那么好學(xué)。2011-04-04
如何使用jQuery技術(shù)開發(fā)ios風(fēng)格的頁面導(dǎo)航菜單
這篇文章主要介紹了如何使用jQuery技術(shù)開發(fā)ios風(fēng)格的頁面導(dǎo)航菜單,需要的朋友可以參考下2015-07-07
jQuery獲取復(fù)選框選中的當(dāng)前行的某個(gè)字段的值
這篇文章主要介紹了jQuery獲取復(fù)選框選中的當(dāng)前行的某個(gè)字段的值,需要的朋友可以參考下2017-09-09
jquery.validate[.unobtrusive]和Bootstrap實(shí)現(xiàn)tooltip錯誤提示問題分析
這篇文章主要介紹了jquery.validate[.unobtrusive]和Bootstrap實(shí)現(xiàn)tooltip錯誤提示問題分析的相關(guān)資料,需要的朋友可以參考下2016-10-10
正負(fù)小數(shù)點(diǎn)后兩位浮點(diǎn)數(shù)實(shí)現(xiàn)原理及代碼
需要做個(gè)對兩位小數(shù)點(diǎn)的正負(fù)浮點(diǎn)數(shù)的處理要求:非數(shù)字或者.字符自動清除,并對.12自動修補(bǔ).前的0,實(shí)現(xiàn)原理如下,感興趣的朋友可以參考下2013-09-09
jQuery獲取checkboxlist的value值的方法
最近著手一個(gè)項(xiàng)目用到了服務(wù)器空間checkboxlist ,使用起來是方便,可以想要從js獲取值就稍微麻煩點(diǎn)了,google后找到了如下方法,感興趣的小伙伴們可以參考一下2015-09-09

