问题:layui如何获取上传的文件类型,然后修改传递的数据data?
方法:
function initUpload(self,e){
var upload = self.upload
var element = self.element
var elem = '#upload-wrapper-'+e
var module_params = '';
btn_num = btn_num + 1;
var btn_id = 'sub_btn_' + btn_num;
$('#btn_box').append('<span id="'+ btn_id +'"></span>')
var uploadInst = upload.render({
elem: elem
,url: '/ngxupld'
,accept: 'file' //允许上传的文件类型
,exts:'doc|docx|ppt|pptx|xls|xlsx|wps|pdf|jpg|jpeg|png|gif'//后缀名限制
,auto:false
,bindAction:'#'+btn_id
,data:{'module_name': 'sgx_prepare', 'module_params': module_params}
,field:'fileupload'
,multiple:false
,drag:true
,size: 51200 //最大允许上传的文件大小50MB
,xhr:xhrOnProgress //上传进度展示
,progress:function(value){//上传进度回调 value进度值
element.progress('upload-progress-'+this.elem[0].id.split('-')[2], value+'%')
}
,choose: function(obj){
console.log('upload111');
obj.preview((index, file, result) => {
return new Promise((resolve,reject)=>{
var ext = file.name.split('.')[1];
var ext_array = ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'wps'];
if(ext_array.indexOf(ext) > -1 ){
this.data.module_params = JSON.stringify({'conv': 1, 'callback': '/bk/api/callback/pdf'})
}
resolve();
}).then(res=>{
$('#'+btn_id).click();
})
})
}
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
$('.upload-progress').show()
layer.load(2); //上传loading\
}
,done: function(res, index, upload){
var item = this.elem;//获取当前触发上传的元素
layer.closeAll('loading'); //关闭loading
saveFile(res,item[0].id.split('-')[2],diyTarget,false)
$('.upload-progress').hide()
element.progress('upload-progress-'+e, '0%');
}
,error: function(index, upload){
element.progress('upload-progress-'+e, '0%');
layer.closeAll('loading'); //关闭loading
}
})
}