Bueno la solucion del compañero
Dradi7 es muy valida. Pero respondiendo la ultima pregunta de Jakuam te cuento que despues de leer un poco encontre que los eventos(click, focus, blur, etc,) solo aplican a los elementos del DOM existentes al momento de renderizar la pagina,en este caso para asociar el evento en cualquier momento tienes que utilizar el evento live de la sgte manera:
reemplazas:
Código HTML:
$('input:file').click (function (){
por este:
Código HTML:
$('input').live('click', function() {
.
Espero que ambas te puedan servir.