更新时间: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")回复