在网上找到的结果是 duplicate: true
,发现没有效果。
WebUploader上传一次后不能再次上传图片,解决方法是在每次上传结束后,“重启”WebUploader。
关键代码是:
//销毁后再次启动
uploader.destroy();
initWebuploader(url,num,totalSize,singleSize,rootPath);
全部代码
function initWebuploader(url,num,totalSize,singleSize,rootPath) {
uploader = WebUploader.create({
fileNumLimit: num,//上传数量限制
fileSizeLimit: totalSize,//限制上传所有文件大小
fileSingleSizeLimit: singleSize,//限制上传单个文件大小
auto: true,
// swf文件路径
// swf: BASE_URL + '/js/Uploader.swf',
// 文件接收服务端。
server: url,
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: '#picker',
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: false,
duplicate: true
});
//上传每个文件之前设置额外参数
uploader.on("uploadStart", function () {
});
uploader.on("startUpload", function () {
});
uploader.on("uploadSuccess", function (file, response) {
$("#imgView").attr("src", rootPath + response);
$("#photo").val(response);
layer.msg("上传成功");
});
uploader.on("uploadFinished", function () {
uploader.destroy();
initWebuploader(url,num,totalSize,singleSize,rootPath);
});
/**
* 验证文件格式以及文件大小
*/
uploader.on("error", function (type) {
if (type == "Q_TYPE_DENIED") {
layer.msg("请上传JPG、PNG格式文件");
} else if (type == "F_EXCEED_SIZE") {
layer.msg("文件大小不能超过2M");
}
});
}