2014-09-25 2 views
0

Я использую возможности blueimp FileUpload, чтобы отправить дополнительные параметры на сервер, которые установлены внутри add:Отправка дополнительных параметров с blueimp FileUpload

var simpleImport = false, replaceImport = false, mergeImport = false; 
$uploadButton.fileupload({ 
      url: myURL, 
      formData: { simple : simpleImport, replace : replaceImport, merge : mergeImport }, 
      add: function (e, data) { 
       var valid = true; 
       // validation logic 
       if (valid) { 
        if (condition №1) simpleImport = true; 
        else if (condition №2) replaceImport = true; 
        else if (condition №3) mergeImport = true; 
        data.submit(); 
       } 
      }, 
      done: function (e, data) { 
       if (data.result) { 
        oTable.ajax.reload(); 
       } 
      }, 
      fail: function (e, data) { 
       alert("shit happens"); 
      } 
     }); 

На сервере я прочитал их в таком виде:

var merge = Convert.ToBoolean(Context.HttpContext.Request.Form["merge"]); 
var simple = Convert.ToBoolean(Context.HttpContext.Request.Form["simple"]); 
var replace = Convert.ToBoolean(Context.HttpContext.Request.Form["replace"]); 

Но, несмотря на изменение его значения внутри add я до сих пор есть все они равны false в моем обработчике. Есть ли какой-либо метод для получения правильных значений, кроме использования скрытых входов или я делаю что-то совершенно неправильное?

ответ

3

Хорошо. Я наконец-то решить эту проблему, вместо того, чтобы добавить дополнительные параметры в настройках объекта:

$uploadButton.fileupload({ 
     url: myUrl,  
     formData: { additional params }, 
     .... 
}); 

они должны быть specidied непосредственно перед отправкой данных в add метода:

add: function (e, data) { 
    ..... 
    data.formData = { additional params }; 
    data.submit(); 
}, 
+0

Пытаясь найти что-то вроде этого, так как последний 2 часа. Супер полезный. Привет, друг! – harsha217