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;
	});
    }
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM