奇怪的bug:使用layui的文件上传功能时,第一次上传图片不报错,之后在上传就一直报错,重启电脑之后还是第一次不报错,之后报错,找了半天问题,把文件上传的代码重新复制粘贴了一下就不报错了
html代码: 图片上传
<label class="layui-form-label">图片</label>
<div class="layui-input-inline">
<div class="layui-upload">
<!-- 图片上传的监听id -->
<button type="button" class="layui-btn" id="test2">上传图片</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="demo1" width="100px" height="100px">
<p id="demoText"></p>
</div>
<div style="width: 95px;">
<div class="layui-progress layui-progress-big" lay-showpercent="yes" lay-filter="demo">
<div class="layui-progress-bar" lay-percent=""></div>
</div>
</div>
</div>
</div>
JS代码------复制,粘贴了一下就不报错了
//常规使用 - 普通图片上传
var uploadInst = upload.render({
elem: '#test2'
,url: '/upload.do' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
,before: function(obj){
//预读本地文件示例,不支持ie8
obj.preview(function(index, file, result){
$('#demo1').attr('src', result); //图片链接(base64)
});
element.progress('demo', '0%'); //进度条复位
layer.msg('上传中', {icon: 16, time: 0});
}
,done: function(res){ //上传完成之后回调
//如果上传失败
if(res.code > 0){
return layer.msg('上传失败');
}
//上传成功的一些操作
//将服务器返回的图片地址保存到表单中的隐藏域当中,到时候会随着表单一起提交到后端
console.log(res.data);
$("#image").val(res.data);
//……
$('#demoText').html(''); //置空上传失败的状态
}
,error: function(){
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
uploadInst.upload();
});
}
//进度条
,progress: function(n, elem, e){
element.progress('demo', n + '%'); //可配合 layui 进度条元素使用
if(n == 100){
layer.msg('上传完毕', {icon: 1});
}
}
});
laydate.render({
elem: '#test1'
});