Estoy usando FormData para cargar varios archivos en mi proyecto Grails. Los archivos deben cargarse a través de Ajax. He usado el siguiente código para cargar ajax. Pero en el controlador, obtengo los parámetros como [object FileList]. ¿Cómo obtengo archivos de este objeto? ¿Hay alguna forma de cambiar este objeto a varias partes?
jQuery('#file-save').click(function() { if (jQuery('#form input[type="file"]')) { var form = jQuery("#form").find('input[type="file"]'); var picData = new FormData(); picData.append('userFiles', form.get(0).files); picData.append('userId', '$usrId'); jQuery.ajax({ url: '/file/upload', type: 'post', dataType:'json', data: picData, enctype: "multipart/form-data", contentType: false, processData: false, success: function(data) { console.log("success"); } }); } }); def upload(){ def userId = params.userId def inputFile = params.userFiles println(inputFile) inputFile.each{i,j-> println(i) println(j) } }Cuando depuro, obtengo params.userFiles: "[object FileList]". Cualquier idea sería apreciada.
Lo más probable es que necesite recorrer el lado del cliente de archivos, agregando la misma clave para cada uno
var picData = new FormData(); // loop through form.get(0).files picData.append('userFiles', file); // end loop picData.append('userId', '$usrId');