Hola:
Yo tengo algún ejemplo:
Caricaturas de grupos a color en acuarelas... es como tu comentas, mediante un frame oculto. Para conseguir el efecto, simplemente clono un tag input file para poder conseguir el nombre del control sin problemas por las distintas implementaciones de los navegadores... luego simplemente se hace un submit no simulado...
Saludos