WebUploader上传组件,动态修改formData的方法

场景

在同一个页面上,点击按钮A后页面不跳转,而是动态传入一个orderId,并且用此值去上传图片入库。

问题

WebUploader无法携带动态传入的orderId值

原因

因为WebUploader初始化,是在页面第一次加载时就已经初始化完成了。

所以导致最初的数据已经提交到WebUpoader中。

而之后按钮A点击修改了orderId,是没法改变已经初始化完成后的orderId的。

解决

webUploader初始化代码如下:

//JavaScript
uploader = WebUploader.create({
...
    formData: {            
        orderId : $("#orderId").val(),
    },
...
}

由于按初次加载就读取了值,所以我们需要调用webUploader的API方法

//JavaScript
uploader.on('uploadBeforeSend', function (obj, data, headers) {
   data.orderId = orderId;
});

调用此方法,程序就会在获取一下当前页面最新的orderId

  • 可以用在jQuery的ajax请求中进行执行
$.ajaxFileUpload({
	url: ... ,                               // 用于文件上传的服务器端请求地址
    secureuri: false,				 // 是否需要安全协议,一般设置为false
    fileElementId: ..., 	                 // 文件上传域的ID
    dataType: 'json',				 // 返回值类型 一般设置为json
    success: function (data){  		 // 服务器成功响应处理函数
	uploader.on('uploadBeforeSend', function (obj, data, headers) {
		data.orderId = orderId;
	});
    }
})
posted @ 2020-11-17 11:59  刺猬鱼/  阅读(1623)  评论(0)    收藏  举报