invece almeno quella parte si fa con i soli css:
l' input di tipo file e' presente (posizionato sopra ad un elemento su cui ti sembra sia possibile cliccare)
ma viene nascosto azzerandone l' opacita' in modo da lasciarlo comunque cliccabile

ciao