简体   繁体   中英

How to send additional data to jQuery File Upload Plugin?

This would seem stupid but i can't seem to understand the documentation. I'm talking about This plugin for file upload.

Now according to the documentation there's an option :

formData

Additional form data to be sent along with the file uploads can be set using this option, which accepts an array of objects with name and value properties, a function returning such an array, a FormData object (for XHR file uploads), or a simple object. The form of the first fileInput is given as parameter to the function.

Note : Additional form data is ignored when the multipart option is set to false.

Type: Array, Object, function or FormData Default: A function returning the form fields as serialized Array:

 function (form) { return form.serializeArray(); } 

Example:

[ { name: 'a', value: 1 }, { name: 'b', value: 2 } ]

Which i fail to understand what i'm suppoused to do with that.

This is how i initialize the plugin :

$('#add_image_upload').fileupload({
            dataType: 'json',
    sequentialUploads: true,
    formData : getDate
});

And this is my attempt to the function :

 function getDate(){

//if user didn't selected a date
if(!selectedDate || selectedDate=="undefined"){
selectedDate = "1/1/"+$('#timeline').html();
}
var date= new Array(selectedDate);
return date;
}

try turning your data into in object - with what they showed in their example

$('#add_image_upload').fileupload({
            dataType: 'json',
    sequentialUploads: true,
    formData : {name:'thedate',value:getDate}
});

Then to add more params

           //name of param  // value
formData : [{name:'thedate',value:getDate},{name:'thedate2',value:'seconddate'},etc..]

Example:

[ { name: 'a', value: 1 }, { name: 'b', value: 2 } ]

Changing thedate with whatever you want to name the param

Though it sounds like a simple object should work fine

           //name:value
formData : {thedate:getDate}

Do you have multipart set to false on your form? Also, ensure the format of what you're sending back is acceptable.

Try hard-coding the following line and sending back the info:

new dateobject = { "date": "1/1/2012" }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM