Posted by codigoweb on March 28, 2013 at 12:34pm
Tengo un webform con varios campos, uno de ellos un numérico auto-incremental http://drupal.org/project/webform_serial y otro tipo File para subir fotos.
Quiero cambiar el nombre del archivo subido por el valor del campo numero de serie.
Al no encontrar ningún módulo contribuido que me sirva me he decidido crear uno, pero no encuentro el hook que tengo que implementar para interceptar el archivo antes de subir el archivo y de actualizar la base de datos.

Comments
Mismo problema
Saludos, yo estoy intentando hacer algo parecido.
Lo que quiero es que cuando se mande un archivo por el webform, se renombre con el formato: autorizacion_[campo1]_[campo2].pdf (o .doc, .docx, .jpg, .png)
Es posible hacer eso? Lo conseguiste hacer?
Solucionado
Al final lo pude arreglar creando un modulo que implementa los hooks hook_webform_submission_presave y hook_file_update
En el primero capto el contenido de los campos y los asigno a una variable global mediante la función variable_set, sé que no es un método muy ortodoxo pero intenté utilizar el objeto node y me encontre con la sorpresa que en la función file_update, que es el momento en que podemos cambiar el nombre del archivo subido, el objeto node ya no existia, así que opté por usar variables globales.
En mi caso me encontré con el problema añadido que uno de los campo que tenian que dar nombre al archivo lo genera el modulo contribuido webform_serial que tambien implementa el hook hook_webform_submission_presave y tuve que llamar al módulo con un nombre que empezara por una letra superior a la "w" para que, en el orden de ejecución de hooks, el mio fuera posterior.
Tembien implementé una función para quitar los acentos al archivo subido.
Acabo de subir el modulo a github por si lo quieres ver, se que es muy mejorable pero no soy programador y es mi primer módulo.
Espero que te sirva de ayuda. Si lo mejoras dímelo, gracias.
Un saludo