更新时间:2019-07-19 16:33:39
更新说明:修复了回调取不到ajax请求数据的错误,完善实例化返回方法
发布时间:2019-07-17 11:56:37
1. 在html中加下如下代码
<input type="button" id="upload_duixiang" value="上传" /> <div class="show"></div> <div class="msg"></div>
2. 引用jq库并调用
<script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <!-- 图片排序 --> <script src="Sortable/Sortable.js"></script>
3. 调用
var a = $("#upload_duixiang").FraUpload({
view: ".show",
url: "upload.php",
fetch: "img", //视图分为三种,img:图片视图 , file:文件视图 ,none或者其他未知: 不渲染上传视图
debug: false,
/* 外部获得的回调接口 */
onLoad: function(e) { // 选择文件的回调方法
// console.log("外部: 初始化完成...");
},
breforePort: function(e) {
// console.log("文件发送之前触发");
},
successPort: function(e) {},
errorPort: function(e) {},
Post: function(e) {}
});4. 获取上传的文件数据
$('.get_images').click(function(){
console.log(a.FraUpload.show())
})
编辑回显参考2楼
附带批量上传失败删除图片的方法
ajax 提交失败后的处理如下:
error: function(responseStr) {
data.('file', file_one);
// console.log(file_type);
//12出错后的动作
self.msg("errorPort...");
self.msg(responseStr);
self.setView(file_type, 1, 'icon-error', '上传失败');
para.errorPort(responseStr);
var this_file = {};
var this_id = '';
var md5 = file_type['md5'];
all = self.files_all;
for (let key in all) {
if (all[key]['md5'] == md5) {
this_file = all[key];
this_id = key;
break;
}
}
self.files_all[this_id];
// $(this).parent().parent('li').remove();
$(".FraUpload_imglist li").each(function() {
console.log($(this).data('md5'))
if ($(this).data('md5') == md5) {
$(this).remove()
}
});
para.Post(this_file);
$(".fileInput").val('')
}
回复
编辑时能回显:
FraUpload.js 30行后添加代码:def : {},同时修改一下createHtml方法,在createHtml方法中的view_DOM = $("#"+view_id);后添加如下代码:
for (var i = 0; i < para.def.length; i++) {
var name = para.def[i].substring(para.def[i].lastIndexOf("\/"), para.def[i].length);
view_DOM.append('' + name + '已上传的')
self.files_all[i] = {
filename: name,
size: '100',
type: 'img',
obj: '',
md5: name,
is_upload: '',
ajax: {
code: 1,
msg: '成功',
data: {
id: 1,
filepath: para.def[i]
}
},
}
}这样,实例化插件是需要带上def,如:
a = $("#upload_duixiang").FraUpload({
view: ".show", // 视图输出位置
url: "/admin/depart/uploadImg.html", // 上传接口
fetch: "img", // 视图现在只支持img
debug: false, // 是否开启调试模式
def: ['test1.jpg', 'test2.jpg', 'test3.jpg'],
});修改思路,实例化图片上传插件时,将需要回显的图片以js数组的形式赋值给def。改造createHtml方法,在初始化插件的时候遍历回显def中的图片,同时将回显得图片推进files_all中【这一步最关键】。
import json
result = {
"code": 1,
"msg": "操作成功",
"data": {
"id": "407",
"filepath": "/uploads/article/20190717/6c25fd31c7821214a991bd9323e1d303.jpg"
},
"url": "",
"wait": 3
}
return HttpResponse(json.dumps(result), content_type = "application/json")
回复