webutils.js
function initMultiImageUpload(selectBtnId, uploadBtnId, path, filesAddedCallback, uploadProgressCallback,
fileUploadedCallback, uploadCompleteCallback, errorCallback) {
var uploader = new plupload.Uploader({
runtimes: 'html5,flash,gears,browserplus,silverlight,html4',
browse_button: selectBtnId,
url: uploadSimpleUrl + 'param=' + path + '&pressText=&cutImg=&width=&height=',
chunk_size: '1mb',
flash_swf_url: baselocation + "/static/common/plupload/js/Moxie.swf",
silverlight_xap_url: baselocation + "${ctx}/static/common/plupload/js/Moxie.xap",
multi_selection: true
});
uploader.bind('FilesAdded',
function(uploader,files) {
$.each(files, function (i,file) {
filesAddedCallback(file.id, file.name);
});
}
);
uploader.bind('UploadProgress',
function(uploader,file) {
uploadProgressCallback(file.id, file.name, file.percent, uploader.total.percent);
}
);
uploader.bind('FileUploaded',
function(uploader,file,responseObject) {
var data = $.parseJSON(responseObject.response);
if(data.error == 0){
fileUploadedCallback(data.fileName, data.url);
}else {
errorCallback(data.message);
}
}
);
uploader.bind('UploadComplete',
function(uploader,files) {
uploadCompleteCallback();
}
);
uploader.bind('Error',
function(uploader,errObject) {
errorCallback(errObject.message);
}
);
plupload.Uploader.prototype.deleteFile = function (fileId) {
try {
var files = uploader.files;
$.each(files, function (i,file) {
if(file.id == fileId) {
files.splice(i, 1);
$("#" + fileId).remove();
}
});
} catch(e) {}
}
uploader.init();
$("#" + uploadBtnId).on("click", function() {
uploader.start();
});
return uploader;
}
test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ include file="/base.jsp"%>
<script type="text/javascript" src="${ctx}/static/common/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="${ctx}/static/common/webutils.js"></script>
<script type="text/javascript" src="${ctx}/static/common/plupload/js/plupload.full.min.js"></script>
<script type="text/javascript" src="${ctx}/static/common/plupload/js/i18n/zh_CN.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<div id="liulan">添加</div>
<div id="shangchuan">上传</div>
<div id="jindu">0%</div>
<div id="liebiao"></div>
<script>
var baselocation = "${ctx}";
var uploadSimpleUrl = "${ctx}/image/plupload?";
function filesAddedCallback(fileId, fileName) {
$('#liebiao').append(
'<div id="' + fileId + '">' +
fileName +
'<a href="javascript:void(0);" onclick="uploader.deleteFile(\'' + fileId + '\')">删除</a>' +
'</div>');
}
function uploadProgressCallback(fileId, fileName, filePercent, totalPercent) {
$('#' + fileId).text(fileName + ' ' + filePercent + '%');
$('#jindu').text(totalPercent + '%');
}
function fileUploadedCallback(fileName, url) {
console.info("callback " + fileName + " " + url + " ok!");
}
function uploadCompleteCallback() {
console.info("全部文件上传成功!");
}
function errorCallback(message) {
console.info(message);
}
var uploader = initMultiImageUpload("liulan", "shangchuan", "test", filesAddedCallback, uploadProgressCallback,
fileUploadedCallback, uploadCompleteCallback, errorCallback);
</script>