序言
在最近的AngularJS的项目中有需要使用上传插件的需求,所以这里将使用说明贴出来。
步骤
1、官网地址:http://fex.baidu.com/webuploader/
2、其他Angular上传插件angular-file-upload 网址:https://www.npmjs.com/package/angular-file-upload
2、代码
选择文件之后自动上传:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!--引入CSS-->
<link rel="stylesheet" type="text/css" href="webuploader/webuploader.css">
<script
src="http://code.jquery.com/jquery-3.2.1.js"
integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
crossorigin="anonymous"></script> <!--引入JS-->
<script type="text/javascript" src="webuploader/webuploader.js"></script>
</head>
<body>
<div id="uploader" class="wu-example">
<!--用来存放文件信息-->
<div id="thelist" class="uploader-list"></div>
<div class="btns">
<div id="picker">选择文件</div>
<button id="ctlBtn" class="btn btn-default">开始上传</button>
</div>
</div>
<script>
var uploader = WebUploader.create({
auto:true,
// swf文件路径
swf:‘/js/Uploader.swf‘,
// 文件接收服务端。
server: ‘http://webuploader.duapp.com/server/fileupload.php‘,
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: ‘#picker‘,
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: false
});
uploader.on( ‘fileQueued‘, function( file ) {
let $list=$("#thelist");
$list.append( ‘<div id="‘ + file.id + ‘" class="item">‘ +
‘<h4 class="info">‘ + file.name + ‘</h4>‘ +
‘<p class="state">等待上传...</p>‘ +
‘</div>‘ );
});
// 文件上传过程中创建进度条实时显示。
uploader.on( ‘uploadProgress‘, function( file, percentage ) {
var $li = $( ‘#‘+file.id ),
$percent = $li.find(‘.progress .progress-bar‘);
// 避免重复创建
if ( !$percent.length ) {
$percent = $(‘<div class="progress progress-striped active">‘ +
‘<div class="progress-bar" role="progressbar" style="width: 0%">‘ +
‘</div>‘ +
‘</div>‘).appendTo( $li ).find(‘.progress-bar‘);
}
$li.find(‘p.state‘).text(‘上传中‘);
$percent.css( ‘width‘, percentage * 100 + ‘%‘ );
});
uploader.on( ‘uploadSuccess‘, function( file ) {
$( ‘#‘+file.id ).find(‘p.state‘).text(‘已上传‘);
});
uploader.on( ‘uploadError‘, function( file ) {
$( ‘#‘+file.id ).find(‘p.state‘).text(‘上传出错‘);
});
uploader.on( ‘uploadComplete‘, function( file ) {
$( ‘#‘+file.id ).find(‘.progress‘).fadeOut();
});
</script>
</body>
</html>
点击按钮之后才会上传
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!--引入CSS-->
<link rel="stylesheet" type="text/css" href="webuploader/webuploader.css">
<script src="http://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
<!--引入JS-->
<script type="text/javascript" src="webuploader/webuploader.js"></script>
</head>
<body>
<div id="uploader" class="wu-example">
<!--用来存放文件信息-->
<div id="thelist" class="uploader-list"></div>
<div class="btns">
<div id="picker">选择文件</div>
<button id="ctlBtn" class="btn btn-default">开始上传</button>
</div>
</div>
<script>
var selectFile = false;
var uploader = WebUploader.create({
//headers中传cookie
//headers: {
// ‘access-token‘: currentCookieCheck
//},
//传递数据的
//formData: {
// "provinceIds":$("#selectedProvince").val(),
// "shippingMethod":$("#shippingMethod").val()
//},
// swf文件路径
swf: ‘/js/Uploader.swf‘,
// 文件接收服务端。
server: ‘/api/express/uploadPrice‘,
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: ‘#picker‘,
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: false
});
uploader.on(‘fileQueued‘, function(file) {
selectFile = true;
let $list = $("#thelist");
$list.append(‘<div id="‘ + file.id + ‘" class="item">‘ +
‘<h4 class="info">‘ + file.name + ‘</h4>‘ +
‘<p class="state">等待上传...</p>‘ +
‘</div>‘);
});
// 文件上传过程中创建进度条实时显示。
uploader.on(‘uploadProgress‘, function(file, percentage) {
var $li = $(‘#‘ + file.id),
$percent = $li.find(‘.progress .progress-bar‘);
// 避免重复创建
if (!$percent.length) {
$percent = $(‘<div class="progress progress-striped active">‘ +
‘<div class="progress-bar" role="progressbar" style="width: 0%">‘ +
‘</div>‘ +
‘</div>‘).appendTo($li).find(‘.progress-bar‘);
}
$li.find(‘p.state‘).text(‘上传中‘);
$percent.css(‘width‘, percentage * 100 + ‘%‘);
});
uploader.on(‘uploadSuccess‘, function(file) {
$(‘#‘ + file.id).find(‘p.state‘).text(‘已上传‘);
});
uploader.on(‘uploadError‘, function(file) {
$(‘#‘ + file.id).find(‘p.state‘).text(‘上传出错‘);
});
uploader.on(‘uploadComplete‘, function(file) {
$(‘#‘ + file.id).find(‘.progress‘).fadeOut();
});
$("#ctlBtn").click(function() {
if (selectFile) {
uploader.upload();
}
})
</script>
</body>
</html>