https://www.cnblogs.com/wisdo/p/6159761.html

webUploader 是款很好用的优秀的开源上传组件,由百度公司开发,详细的介绍可参见webUploader 的官方文档:

最近在使用webUploader时,需要添加额外的参数,并在后台获取,参数的格式是json,刚开始一直设置不对,在参考了官网的api文档及相关热心网友的回答后,终于弄明白了webUploader 上传参数的设置。设置的方法一般是在uploader 对象创建后的 fileQueued  或 uploadBeforeSend 事件 中设置 ,也可以对webUploader 对象的属性 formData 进行直接 设置。

具体如下 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
    uploader = WebUploader.create({
                    auto: false,
                    // swf文件路径
                    swf: '/Scripts/webUploader/Uploader.swf',
 
                    // 文件接收服务端。
                    server: '@Url.Action("Upload", "Home")',
 
                    // 选择文件的按钮。可选。
                    // 内部根据当前运行是创建,可能是input元素,也可能是flash.
                    pick: '#myPicker',
 
                   // formData: { "name": name, "desc": desc},
                
                    prepareNextFile:true,
                    chunked: true// 分片上传大文件
                    chunkRetry: 10, // 如果某个分片由于网络问题出错,允许自动重传多少次?
                    thread: 100,// 最大上传并发数
                    method: 'POST',
                    fileSizeLimit: 1024,
 
                    // 只允许选择图片文件。
                    accept: {
                        title: 'HTML5组态文件',
                        extensions: 'gif,jpg,jpeg,bmp,png',
                       mimeTypes: 'img/*'
                    }
 
                });
 
        5
6
7
8
9
10
11
12
13
  
 
//当文件被加入队列之前触发
uploader.on('beforeFileQueued', function (file) {
    //如果是单文件上传,把旧的文件地址传过去
    if (!p.multiple) {
        if (p.sendurl.indexOf("action=itemcode") > 0) {
            if ($("#txtItemCode").val() == '') {
                layer.msg('请先填写商品编码再上传图片!');
                //layer.alert('请先填写商品编码再上传图片!');
                return false;
            }
        data.formData= { "name": name, "desc": desc};
        }
    }
    });
 
 
                uploader.on('fileQueued', function (file) {
                    $("#listFile").append('<div id="' + file.id + '" class="item">' +
                        '<h4 class="info">' + file.name + '</h4>' +
                        '<p class="state">等待上传...</p>' +
                    '</div>');
                });
 
                uploader.on('uploadProgress', function (file, percentage) {
                    var li = $('#' + file.id),
                        percent = li.find('.progress .progress-bar');
                    // 避免重复创建
                    if (!percent.length) {
                        percent = $('<div class="progress progress-striped active">' +
                          '<div class="progress-bar" role="progressbar" style="width: 0%">' +
                          '</div>' +
                        '</div>').appendTo(li).find('.progress-bar');
                    }
                    li.find('p.state').text('上传中');
                    percent.css('width', percentage * 100 + '%');
                });
 
                uploader.on('uploadSuccess', function (file) {
                    $('#' + file.id).find('p.state').text('已上传');
                });
 
                uploader.on('uploadError', function (file) {
                    $('#' + file.id).find('p.state').text('上传出错');
                });
 
                uploader.on('uploadComplete', function (file) {
                    $('#' + file.id).find('.progress').fadeOut();
                    //$("#editModal").fadeOut(2000, window.location.reload());
                    //destory();
                    //$("#editModal").destory();
                });
 
 
                //当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
 
                uploader.on('uploadBeforeSend', function (obj, data, headers) {
                   // data.DelFilePath = parentObj.siblings(".upload-path").val();
                   //  data.ItemCode = $("#txtItemCode").val();
             data.formData= { "name": name, "desc": desc};
                });
 
                uploader.on('all', function (type) {
                    if (type === 'startUpload') {
                        state = 'uploading';
                    } else if (type === 'stopUpload') {
                        state = 'paused';
                    } else if (type === 'uploadFinished') {
                        state = 'done';
                    }
                    if (state === 'uploading') {
                        $('#btnBeginUpload').text('暂停上传');
                    } else {
                        $('#btnBeginUpload').text('开始上传');
                    }
                });
 
            } else {
                geap.alertPostMsgDefault("请选择一个文件!", "info");
            }
        });
 
 
   // 点击上传事件
 
  $('#btnSave').bind('click', function () {
           var  name = $("#txtName").val();
           var  id = $("#txtId").val();
 
             if (!name || name.length == 0) {
                 alert("请填写名称");
                 return false;
             }
            var obj = new Object();
            obj.name = name;
            obj.id = id;
            uploader.options.formData = obj;
          //  uploader.options.formData = { "name": name, "id": id, };
            if (state === 'uploading') {
                uploader.stop();
            } else {
                uploader.upload();
            }
        });

WebUpload formdata 上传参数的更多相关文章

  1. 使用FormData上传文件、图片

    关于FormData XMLHttpRequest Level 2添加了一个新的接口  ---- FormData 利用FormData对象,可以通过js用一些键值对来模拟一系列表单控件,可以使用XM ...

  2. 项目总结21:项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库)

    项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库) 备注:本案例,作为Demo,包含少量的项目业务逻辑,input多图上传的逻辑是完整的: 不废话直接上代码 1-前端标 ...

  3. android选择图片或拍照图片上传到服务器(包括上传参数)

    From:http://blog.csdn.net/springsky_/article/details/8213898具体上传代码: 1.选择图片和上传界面,包括上传完成和异常的回调监听 [java ...

  4. canvas利用formdata上传到服务器

    1.首先绘制canvas图片 <canvas id="myCanvas" width="100" height="100" style ...

  5. (十)HttpClient以multipart/form-data上传文件

    原文链接:https://blog.csdn.net/wsdtq123/article/details/78888734 POST上传文件 最早的HTTP POST是不支持文件上传的,给编程开发带来很 ...

  6. web service上传参数代码实例

    web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一, ...

  7. 利用WebClient上传参数及文件流到远程ashx服务

    原文 利用WebClient上传参数及文件流到远程ashx服务 1 思路: WebClient.UploadFile()方法可以上传文件:UploadData()方法可以上传数据参数:如何合二为一既上 ...

  8. 文件上传二:FormData上传

    介绍三种上传方式: 文件上传一:伪刷新上传 文件上传二:FormData上传 文件上传三:base64编码上传 Flash的方式也玩过,现在不推荐用了. 真正的异步上传,FormData的更多操作,请 ...

  9. js bese64转化为blob使用FormData上传

    原文 工作示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

随机推荐

  1. elk 使用中遇到的问题(kafka 重复消费)

    问题描述: 在使用过程中,当遇到大量报错的时候,我们到eagle后台看到报错的那个consumer的消费情况到到lag 远远大于0(正常情况应该为0),activie  节点没有,kibana面板上没 ...

  2. private static final long serialVersionUID = 1L;

    作者:郭无心链接:https://www.zhihu.com/question/24852886/answer/117314768来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  3. leetcode第一刷_Combinations

    生成组合数是初中的知识,没有人不知道. 组合数学我觉得是最有意思的数学分支,室友应该是这方面的专家,他的纸牌问题我听都听不懂.. 不知道你们是什么感觉.我以看到组合数,立即会想到全排列.这可能是由于当 ...

  4. [100]find&xargs命令

    打算把基础命令常用选项做个总结. find命令参数 - 命令格式 find . -type f -name '*.txt' - 命令参数 find #查找文件 -type #指定类型 f 文件 d 目 ...

  5. Robolectric使用教程

    转载请标明出处:http://blog.csdn.net/shensky711/article/details/53561172 本文出自: [HansChen的博客] 概述 怎样使用 为项目加入依赖 ...

  6. ssh以密钥的方式登录服务器时,只要有密钥可以登服务器,如果有密钥和公钥同时存在(在公钥没问题的情况下可以),但如果公钥有问题,就不能登录成功

    在~/.ssh/下如果只有密钥或公私同时存在时,都可以成功登录服务器,但!!!!!!如果公钥有换成别的服务器的公钥时,是无法登录远程的服务器!!!!

  7. OpenVSwitch 硬件加速浅谈

    https://zhuanlan.zhihu.com/p/57870521 本文首发SDNLAB. 现代的虚拟化技术使得开发和部署高级网络服务变得更加简单方便.基于虚拟化的网络服务,具有多样性,低成本 ...

  8. Asp.net Core 项目API接口服务器部署

    Windows server 2008服务器部署: DotNetCore.1.0.0.RC2-WindowsHosting 或者DotNetCore.1.0.5_1.1.2-WindowsHostin ...

  9. Redhat系统部署安装Splunk

    一.下载安装包 可以从国内网站进入:http://10data.com/splunk/ 下载前需要注册一个splunk账号,注册后便可以提供下载,安装包名称:splunklight-6.5.1-f74 ...

  10. iOS应用管理(优化)

    // //  ViewController.m //  01-应用管理 //  Created by apple on 17-5-14. //  Copyright (c) 2017年  All ri ...