先创建DOM节点:
<head ng-app="myApp">
<meta charset="UTF-8">
<title></title>
<script src="jquery-1.10.1.min.js"></script>
<script src="http://cdn.staticfile.org/webuploader/0.1.0/webuploader.js"></script>
<!--<script src="file_up.js"></script>-->
</head>
<body ng-controller="myCtrl">
<p><input type="file" value="上传文件"/></p>
</br>
<div >
<!--用来存放文件信息-->
<div ></div>
<div class="btns">
<div >选择文件</div>
<button >开始上传</button>
</div>
<div ></div>
</div>
</body>
<<span style="color:rgb(255 211 0)">scriptspan>>
//实例化
var <span style="color:rgb(98 189 255)">uploaderspan> = <span style="color:rgb(98 189 255)">Web<span style="color:rgb(98 189 255)">Uploaderspan>span>.create({
// <span style="color:rgb(255 111 119)">swfspan>文件路径
//<span style="color:rgb(255 111 119)">swfspan>: BASE_URL + '/js/<span style="color:rgb(98 189 255)">Uploaderspan>.<span style="color:rgb(255 111 119)">swfspan>',
// <span style="color:rgb(255 111 119)">swfspan>:'<span style="color:rgb(73 238 255)">httpspan>://<span style="color:rgb(255 111 119)">cdnspan>.<span style="color:rgb(98 189 255)">static<span style="color:rgb(73 238 255)">filespan>span>.org/web<span style="color:rgb(98 189 255)">uploaderspan>/0.1.0/<span style="color:rgb(98 189 255)">Uploaderspan>.<span style="color:rgb(255 111 119)">swfspan>',
<span style="color:rgb(73 238 255)">autospan>: false,
// 文件接收服务端。
<span style="color:rgb(255 211 0)">serverspan>:'<span style="color:rgb(73 238 255)">httpspan>://<span style="color:rgb(255 111 119)">127span>.0.0.1:8020/upFile/<span style="color:rgb(253 97 106)"><span style="color:rgb(73 238 255)">filespan>_upspan>.html', <span>//在做这个demo的时候,并没有服务器地址,我使用的是HBuilder自带的浏览器打开文件,复制urlspan>
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是<span style="color:rgb(255 95 0)">flashspan>.
<span style="color:rgb(73 238 255)">pickspan>: '#<span style="color:rgb(73 238 255)">pickspan>er',
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
<span style="color:rgb(255 211 0)">resizespan>: false,
<span style="color:rgb(255 211 0)">methodspan>:'POST',
});
// 上传队列,仅包括等待上传的文件
var <span style="color:rgb(255 211 0)">_queuespan> = [];
// 存储所有文件
var _map = {};
// 当有文件被添加进队列的时候
<span style="color:rgb(98 189 255)">uploaderspan>.on( '<span style="color:rgb(73 238 255)">filespan>Queued', function( <span style="color:rgb(73 238 255)">filespan> ) {
var that_<span style="color:rgb(73 238 255)">filespan>=<span style="color:rgb(73 238 255)">filespan>;
<span style="color:rgb(255 211 0)">_queuespan>.push(<span style="color:rgb(73 238 255)">filespan>);
draw_page(<span style="color:rgb(255 211 0)">_queuespan>);
});
//绘制页面
function draw_page(<span style="color:rgb(255 211 0)">_queuespan>){
$<span style="color:rgb(73 238 255)"><span style="color:rgb(144 255 173)">lispan>stspan>=$("#my_<span style="color:rgb(73 238 255)"><span style="color:rgb(144 255 173)">lispan>stspan>");
$<span style="color:rgb(73 238 255)"><span style="color:rgb(144 255 173)">lispan>stspan>.html("");
<span style="color:rgb(253 97 106)">consolespan>.log($<span style="color:rgb(73 238 255)"><span style="color:rgb(144 255 173)">lispan>stspan>.html());
for(var i=0;i<<span style="color:rgb(255 211 0)">_queuespan>.length;i++){
$<span style="color:rgb(73 238 255)"><span style="color:rgb(144 255 173)">lispan>stspan>.append( '<<span style="color:rgb(255 111 119)">divspan> >' +
'<<span style="color:rgb(144 255 173)">h4span> class="<span style="color:rgb(73 238 255)">infospan>">' + <span style="color:rgb(255 211 0)">_queuespan>[i].name +
'<span ' + 'onc<span style="color:rgb(144 255 173)">lispan>ck=deleteMy<span style="color:rgb(73 238 255)">filespan>('+<span style="color:rgb(255 211 0)">_queuespan>[i].<span style="color:rgb(144 255 173)">idspan>+')'+ '> 取消上传</span>'
+'</<span style="color:rgb(144 255 173)">h4span>>' +
'</<span style="color:rgb(255 111 119)">divspan>>' );
}
}
//点击开始上传文件
$("#ctlBtn").on("c<span style="color:rgb(144 255 173)">lispan>ck",function(){
<span style="color:rgb(98 189 255)">uploaderspan>.upload();
});
//点击“取消”按钮,调用事件
function deleteMy<span style="color:rgb(73 238 255)">filespan>(myFile_<span style="color:rgb(144 255 173)">idspan>){
<span style="color:rgb(253 97 106)">consolespan>.log(myFile_<span style="color:rgb(144 255 173)">idspan>);
//点击取消,删除dom节点刷新界面
// $(myFile_<span style="color:rgb(144 255 173)">idspan>).remove();
var tar_<span style="color:rgb(144 255 173)">idspan>= $(myFile_<span style="color:rgb(144 255 173)">idspan>).attr("<span style="color:rgb(144 255 173)">idspan>");
$.each(<span style="color:rgb(255 211 0)">_queuespan>,function(k,v){
if(<span style="color:rgb(255 211 0)">_queuespan>[k].<span style="color:rgb(144 255 173)">idspan>==tar_<span style="color:rgb(144 255 173)">idspan>){
var myFile=<span style="color:rgb(255 211 0)">_queuespan>[k];
<span style="color:rgb(98 189 255)">uploaderspan>.removeFile(myFile,true);
}
//return false;
});
}
//文件删除的详细方式
function _delFile (<span style="color:rgb(73 238 255)">filespan>){
for(var i = <span style="color:rgb(255 211 0)">_queuespan>.length - 1 ; i >= 0 ; i-- ){
if(<span style="color:rgb(255 211 0)">_queuespan>[i].<span style="color:rgb(144 255 173)">idspan>== <span style="color:rgb(73 238 255)">filespan>.<span style="color:rgb(144 255 173)">idspan>){
<span style="color:rgb(255 211 0)">_queuespan>.sp<span style="color:rgb(144 255 173)">lispan>ce(i,1);
break;
}
}
//重新绘制界面
draw_page(<span style="color:rgb(255 211 0)">_queuespan>);
};
//档文件被移除队列de时候
<span style="color:rgb(98 189 255)">uploaderspan>.on("<span style="color:rgb(73 238 255)">filespan>Dequeued",function(<span style="color:rgb(73 238 255)">filespan>){
_delFile (<span style="color:rgb(73 238 255)">filespan>);
});
// 文件上传过程中创建进度条实时显示。
<span style="color:rgb(98 189 255)">uploaderspan>.on( 'uploadProgress', function( <span style="color:rgb(73 238 255)">filespan>, <span style="color:rgb(253 97 106)">percentspan>age ) {
alert("uploadProgress--文件正在上传");
var $<span style="color:rgb(144 255 173)">lispan> = $( '#'+<span style="color:rgb(73 238 255)">filespan>.<span style="color:rgb(144 255 173)">idspan> ),
$<span style="color:rgb(253 97 106)">percentspan> = $<span style="color:rgb(144 255 173)">lispan>.find('.progress .<span style="color:rgb(98 189 255)">progress-barspan>');
// 避免重复创建
if ( !$<span style="color:rgb(253 97 106)">percentspan>.length ) {
$<span style="color:rgb(253 97 106)">percentspan> = $('<<span style="color:rgb(255 111 119)">divspan> class="progress progress-striped active">' +
'<<span style="color:rgb(255 111 119)">divspan> class="<span style="color:rgb(98 189 255)">progress-barspan>" role="<span style="color:rgb(98 189 255)">progressbarspan>" style="<span style="color:rgb(255 95 0)">w<span style="color:rgb(144 255 173)">idspan>thspan>: 0%">' +
'</<span style="color:rgb(255 111 119)">divspan>>' +
'</<span style="color:rgb(255 111 119)">divspan>>').appendTo( $<span style="color:rgb(144 255 173)">lispan> ).find('.<span style="color:rgb(98 189 255)">progress-barspan>');
}
$<span style="color:rgb(144 255 173)">lispan>.find('p.state').text('上传中');
$<span style="color:rgb(253 97 106)">percentspan>.css( '<span style="color:rgb(255 95 0)">w<span style="color:rgb(144 255 173)">idspan>thspan>', <span style="color:rgb(253 97 106)">percentspan>age * 100 + '%' );
});
//开始上传
<span style="color:rgb(98 189 255)">uploaderspan>.on('startUpload',function(<span style="color:rgb(73 238 255)">filespan>){
alert("文件开始上传了------startUpload");
});
<span style="color:rgb(98 189 255)">uploaderspan>.on( 'uploadSuccess', function( <span style="color:rgb(73 238 255)">filespan> ) {
$( '#'+<span style="color:rgb(73 238 255)">filespan>.<span style="color:rgb(144 255 173)">idspan> ).find('p.state').text('已上传');
});
<span style="color:rgb(98 189 255)">uploaderspan>.on( 'uploadError', function( <span style="color:rgb(73 238 255)">filespan> ) {
$( '#'+<span style="color:rgb(73 238 255)">filespan>.<span style="color:rgb(144 255 173)">idspan> ).find('p.state').text('上传出错');
});
<span style="color:rgb(98 189 255)">uploaderspan>.on( 'uploadComplete', function( <span style="color:rgb(73 238 255)">filespan> ) {
$( '#'+<span style="color:rgb(73 238 255)">filespan>.<span style="color:rgb(144 255 173)">idspan> ).find('.progress').fadeOut();
});
</<span style="color:rgb(255 211 0)">scriptspan>>
参考文章:http://blog.ncmem.com/wordpress/2023/09/14/%e5%88%86%e4%ba%ab%e7%99%be%e5%ba%a6%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e7%bb%84%e4%bb%b6webuploader%e7%9a%84%e4%bd%bf%e7%94%a8demo/
欢迎入群一起讨论