图片上传拖动排序插件(原创)

所属分类:输入-上传

 26567  255  查看评论 (13)
分享到微信朋友圈
X
图片上传拖动排序插件(原创) ie兼容10

更新时间: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())
})
相关插件-上传

基于HTML5的jquery文件上传插件

这个插件是照着uploadify的api文档写的
  上传
 291930  624

手机端实现多图片上传预览

HTML+CSS+原生JS实现手机端实现多图片上传,选中图片后,可以点击放大(有一定的注释,在PC,ipad,IOS和安卓上都测试过)
  上传
 34516  313

zyupload图片上传修改版

在原zyupload基础上增加了放大,删除,目录选择功能 。上传的图片可以轮播查看, 上传图片有拖拽图片和文件功能
  上传
 59866  382

上传图片-可裁剪

上传图片可裁剪
  上传
 117852  388

讨论这个项目(13)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    Wǒ?硪佬? 1
    2020/10/30 17:39:53

    编辑回显参考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('')
    }
    回复
    nacuil 0
    2020/8/11 17:46:14
    大佬,请问怎么初始化图片数据呢? 回复
    LynXx 3
    2019/12/9 16:39:08

    编辑时能回显:
    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中【这一步最关键】。

        王冲0
        2020/6/19 11:08:47
        请问如何 将回显得图片推进files_all中,非常感谢无私付出。
    回复
    LynXx 0
    2019/12/9 16:30:40
    回显怎么调用方法
        Ade-constraint1
        2020/7/6 18:30:26
        return HttpResponse(json.dumps(result), content_type = "application/json")
    回复
    おうましゅう 0
    2019/11/21 13:33:19
    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")
    回复
    深爱 0
    2019/10/9 17:49:48
    同一个页面不能使用多个吗?
    回复
    Endless Love 0
    2019/10/3 16:22:10
    修改的时候我怎么渲染之前上传的图片呢? 回复
    随风而动 0
    2019/9/29 16:42:27
    同问,大佬回显怎么调用方法 回复
    ┏ 绝影 0
    2019/8/25 23:17:28
    bboy-小韩 0
    2019/8/13 11:25:17
    回显怎么调用方法 回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复