fileinput插件处理详情过程:
跨域删除问题
使用springBoot框架添加注解@CrossOrigin
多文件删除相关回调方法
格式如下
}).on('xxx', function(event, id, index) {}
具体相关方法解释:
filepreremove ------附件信息还未上传到服务器,附件移除回调方法
fileremoved ------附件信息还未上传到服务器,移除之后的回调方法
filebeforedelete ------附件从服务器删除文件之前回调方法
filepredelete ------附件从服务器删除文件回调方法
filedeleted ------附件从服务器删除文件之后回调方法
附件删除ajax请求配置
------该方法适用于当ajax请求时,url参数可从全局变量定义方式
具体配置在fileinput中:
ajaxDeleteSettings: {
type: 'post',
dataType:"json",
async: true,
data:{
fileId:fileId,
fileUrl:fileUrl,
group: group,
storage:storage
},
// url: prefix + "/deleteFile?fileId="+fileId +"&fileUrl="+fileUrl+"&group="+group+"&storage="+storage,
url: prefix + "/deleteFile",
beforeSend:function (xhr,settings) {
console.log(fileId);
console.log(fileUrl);
console.log(group);
console.log(storage);
console.log(settings.data);
console.log(xhr);
console.log(settings);
},
},
mergeAjaxDeleteCallbacks: 'before' // 有了这个配置才会在请求发送之前触发ajaxDeleteSettings方法
修改fileinput.js源码,手动添加ajax请求参数
前提:
页面增加initialPreviewConfig 参数
定义为var initialPreviewConfig = [];
initialPreviewConfig 中给定所需的参数 id,url等
--根据vkey值与initialPreviewConfig中key值匹配获取对应的其他参数
for (var i = 0; i < self.initialPreviewConfig.length; i++) {
if(vKey === self.initialPreviewConfig[i].key){
var vfileId = self.initialPreviewConfig[i].fileId;
var vfileUrl = self.initialPreviewConfig[i].fileUrl;
var vgroup = self.initialPreviewConfig[i].group;
var vstorage = self.initialPreviewConfig[i].storage;
}
}
--修改settings 中data参数与后台交互
data: $.extend(true, {}, {key: vKey,fileId:vfileId,fileUrl:vfileUrl,group:vgroup,storage:vstorage}, extraData)
参数相关
// 该参数查阅资料过程中 略研究但是更多还是使用initialPreviewConfig 仅记录
var deleteExtraData = [];
文件后缀名大小写导致大写文件无法上传
fileCompare: function(input, str, exact){
var split = input.split("\.")[1];
for (var i = 0; i < str.length; i++) {
if(split == str[i]){return "verify";}else{}
}
return ;
// return input !== undefined && (exact ? input === str : input.match(str));
//新增方法 并修改这个地方
chk = $h.fileCompare(caption, fileExt);