2009-06-12 5 views
2

Mon site permet aux utilisateurs de télécharger des fichiers CSV pour le traitement. Tout fonctionne très bien, mais sur la réponse, je voudrais signaler quelque chose comme "Votre fichier abc.csv traité OK".file_field_tag: quel était le nom du fichier d'origine?

Malheureusement, je n'arrive pas à trouver le nom du fichier original dans les paramètres, même si Firebug me dit que cela fait partie de la publication.

Des conseils?

Merci ....

Répondre

1

Essayez d'utiliser le débogage sur les résultats de votre formulaire.

http://guides.rubyonrails.org/debugging_rails_applications.html#debug

+0

Je ne vois pas comment cela aide. Je peux dire que le nom de fichier n'est pas dans le hash des params en regardant le journal. – Rob

+0

Je pensais que cela pourrait aider à décomposer où regarder. Après un peu de recherche, je l'ai trouvé dans params [: your_file_field_name] .original_filename. – Jarrod

+0

Oui - juste trouvé que moi-même! Merci. – Rob

2

Comme Jarrod mentions dans les commentaires ci-dessus. Utilisez params [: file] .original_filename

Chose amusante, mon formulaire a deux étiquettes de téléchargement de fichier (fichier1 et fichier2). On arrive en tant que ActionController :: UploadedTempfile et l'autre ActionController :: UploadedStringIO.

Cela peut être un bug de rails, mais cela n'a pas d'importance pour moi car les deux ont la méthode original_filename.

+0

Le fichier UploadedTempfile est probablement Rails créant un fichier temporaire pour un téléchargement trop volumineux pour être conservé en mémoire. – Jarrod

Questions connexes