2012-04-14 16 views
7

Estoy tratando de integrar el excelente jquery-file-upload from blueimp en Grails 2.0 y escribir un nuevo complemento para eso. Sé que hay already a plugin, pero no usa recursos y no se ha actualizado durante 9 meses, y jquery-file-upload ha cambiado mucho en ese momento.Carga de varios archivos en Grails

Así que puse todos los archivos de la distribución en mi complemento, y ahora estoy tratando de escribir una acción de controlador que pueda manejar la carga. El problema es que request.getFileNames() solo me da una entrada files[] y no sé cómo recuperar los 3 archivos individuales que estoy cargando.

¿Cómo se manejan los archivos enviados por una entrada como esta: <input type="file" name="files[]" multiple>?

Respuesta

2

request.getFileNames devuelve una matriz - puede iterar sobre esta matriz para obtener todos los archivos. El ejemplo ya está allí en la descripción del complemento.

def all = request.getFileNames() 
all.each {name -> 
    def file = request.getFile(name) 
} 

Esto debería darle todos los archivos que se cargaron.

4

En realidad lo descubrí. Solo hay un input[type=file] en el formulario y si selecciono varios archivos, no se envían en la misma solicitud. El script query-file-upload envía tantas solicitudes POST como archivos hay. Es por eso que request.getFileNames() solo me da una entrada cada vez. Logré crear mi plugin, será publicado pronto. Tenga cuidado con http://grails.org/plugin/bootstrap-file-upload.