c# - getting data from upload-template in jquery file upload plugin -
i tried use asp.net mvc 3 example of jquery file upload plugin. i've changed upload-template shows input filed , checkbox every file (user can set data each chosen file). , when user decides upload file need not data provided plugin (file name, file url, file size) data input , checkbox. don't know how values when user uploads many files, because if give id these fields there same id each input , each checkbox, it's not gonna work. if give same class these fields can elements class , iterate through these fields don't know iteration refers file. i've put hidden inputs in form send when file uploaded have no idea how data each input in upload-template send via form.
there code used display each file added queue not uploaded yet.
<!-- template display files available upload --> <script id="template-upload" type="text/x-tmpl"> {% (var i=0, file; file=o.files[i]; i++) { %} {% var nodename = file.name.substring(0, file.name.length - 4); %} <tr class="template-upload fade"> **<td><input id="setnodename" value="{%=nodename%}" type="text" class="form-control nodename" /></td>** {% if (file.error) { %} <td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td> {% } else if (o.files.valid && !i) { %} <td> <div class="progress progress-success progress-striped active"><div class="bar" style="width:0%;"></div></div> </td> <td class="start">{% if (!o.options.autoupload) { %} <button class="btn btn-primary"> <i class="icon-upload icon-white"></i> <span>{%=locale.fileupload.start%}</span> </button> {% } %}</td> {% } else { %} <td colspan="2"></td> {% } %} <td class="cancel">{% if (!i) { %} <button class="btn btn-warning"> <i class="icon-ban-circle icon-white"></i> <span>{%=locale.fileupload.cancel%}</span> </button> {% } %}</td> </tr> {% } %} </script>
then there form send when file uploaded. added here hidden input store data user (input filed has id setnodename):
<form id="fileupload" action="@url.action("uploadfiles")" method="post" enctype="multipart/form-data"> **<input type="hidden" id="nodename" value="" />** <!-- fileupload-buttonbar contains buttons add/delete files , start/cancel upload --> <div class="row fileupload-buttonbar"> <div class="span7"> <!-- fileinput-button span used style file input field button --> <span class="btn btn-success fileinput-button"> <i class="icon-plus icon-white"></i> <span>add files...</span> <input type="file" name="files[]" multiple> </span> <button type="submit" class="btn btn-primary start"> <i class="icon-upload icon-white"></i> <span>start upload</span> </button> <button type="reset" class="btn btn-warning cancel"> <i class="icon-ban-circle icon-white"></i> <span>cancel upload</span> </button> <button type="button" class="btn btn-danger delete"> <i class="icon-trash icon-white"></i> <span>delete</span> </button> <input type="checkbox" class="toggle"> </div> <div class="span5"> <!-- global progress bar --> <div class="progress progress-success progress-striped active fade"> <div class="bar" style="width:0%;"></div> </div> </div> </div> <!-- loading indicator shown during image processing --> <div class="fileupload-loading"></div> <br> <!-- table listing files available upload/download --> <table class="table table-striped"><tbody class="files" data-toggle="modal-gallery" data-target="#modal-gallery"></tbody></table> </form>
and in function called before file uploaded wanted transfer data input in upload-template hidden input in form. , said tried call id when there more 1 file have couple of inputs same id it's not working. tried elements class (i changed setnodename id setnodename class) , had couple of inputs data user didn't know of these inputs should use @ moment because files in jquery plugin don't have index value. each uploaded file had array of inputs (count of inputs equal added files count) didn't know of array elements valid file uploaded @ moment.
i think should take @ documentation of plugin sending additional parameters file. need add event handler on 'fileuploadsubmit' fire on every file before uploads:
$('#fileupload').bind('fileuploadsubmit', function (e, data) { var inputs = data.context.find(':input'); data.formdata = inputs.serializearray(); })
Comments
Post a Comment