使用layui.upload上传文件或图片
悬赏:5积分
[p]
一、充分了解三个状态:choose,before,done。
[/p]
[li]
choose:表示文件选择后的回调,注意此时并没有加入上传队列;
[/li]
[li]
before:表示文件上传前的回调,注意此时已经加入上传队列;
[/li]
[li]
done:表示文件上传成功的回调;
[/li]
[p]二、要使用choose,必须设置为auto为false这一步就是精华所在了,很多人都不会设置auto,而默认值是true自动上传,自动上传就无法阻止不上传了。
所以,必须要设置auto:false,这样就可以配合choose了,在choose,如果不执行obj.upload(index, file)就不会上传了。[/p]
[p]三、代码分享[/p]
[pre]
layui.use(['layer', 'upload'], function () {
var upload = layui.upload;
upload.render({
elem: '#divUpload'
, url: '/ashx/upload.ashx'
, multiple: true //多文件上传
, accept: "file"
, data: { action: 'layupload' }
, auto: false
, choose: function (obj) {
obj.preview(function (index, file, result) {
if ($(".fileName[data-filename='" + file.name.toLowerCase() + "']").length > 0)
alert("文件已存在");
else
obj.upload(index, file);//文件上传
});
}
, before: function (obj) {
alert("文件开始上传,请等待");
}
, done: function (res, index, upload) {
alert("文件上传成功");
}, error: function (a, b) {
alert("文件上传发生错误");
}
});
});
[/pre]