首先引入js和css(jquery也要引用)
<!--引入CSS--><link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css">
<!--引入JS--><script type="text/javascript" src="webuploader文件夹/webuploader.js"></script>
html部分(就是一个div)
初始化webuploader
//因页面中又是需要初始化多个上传按钮,.create生成的对象名使用 window[uploaderid]
$('[plugin="webuploader"]').livequery(function () {
$(this).each(function () {
var datas = eval("(" + $(this).attr("data") + ")");
// 初始化Web Uploader
//var uploader = WebUploader.create({
var uploaderid = datas.id;
window[uploaderid] = WebUploader.create({
// 选完文件后是否自动上传
auto: true,
// swf文件路径
swf: '../../../assets/plugin/webuploader/Uploader.swf',
// 文件接收服务端。
server: datas.server,
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: false,
fileSingleSizeLimit: datas.fileSizeLimit * 1024 * 1024,//限制大小'datas.fileSizeLimit'M,所有被选文件,超出不选择
duplicate :true, //去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
//pick: '#' + datas.id,
pick: {
id: '#' + datas.id,
multiple: false
},
// 只允许选择图片文件。(mimeTypes未使用,因上传附件时mimeType较为复杂)
accept: {
title: 'files',
extensions: datas.fileExtensions,
//mimeTypes: 'files/*'
//mimeTypes: 'image/jpeg,image/png,image/jpg'
//mimeTypes: 'file/doc,file/docx'
//mimeTypes: 'image/*'
//mimeTypes: 'image/doc,image/docx'
}
});
//文件选择失败的回调
window[uploaderid].on('error', function (type) {
//文件太大
if (type == "Q_EXCEED_SIZE_LIMIT") {
//console.log('文件大小不可超过' + datas.fileSizeLimit + 'M,换个小点的文件吧!');
//alert('文件大小不可超过' + datas.fileSizeLimit + 'M,换个小点的文件吧!');
layer.alert('文件大小不可超过' + datas.fileSizeLimit + 'M,换个小点的文件吧!');
}
//文件类型错误
else if (type == 'Q_TYPE_DENIED') {
//console.log('文件类型错误!');
layer.alert('文件类型错误!');
//alert('文件类型错误!');
}
});
//文件上传失败的回调
window[uploaderid].on('uploadError', function (type) {
});
//文件上传成功的回调
window[uploaderid].on('uploadSuccess', function (file, res) {
});
//当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为false, 则此文件将派送server类型的uploadError事件。
window[uploaderid].on('uploadAccept', function (file, res) {
//console.log('文件上传中回调:' + res);
var hasError = res.flag;
if (!hasError) {
if (res.message.length > 0) {
//alert(res.error);
layer.alert(res.message);
}
// 通过return false来告诉组件,此文件上传有错。
else
return false;
}
});
//后台代码
未设置文件上传域的name值,默认为file。修改可使用fileVal
{Object} [可选] [默认值:'file']
注意:当用于初始化的div是在父元素为display:hidden时,div.width无法获取正确的宽度,生成的button高度为1px,无法点击。故修改webuploader.css