No Angular 1.X a coisa muda um pouco, não é tão trivial. Se você fizer assim, precisará deixar que o evento padrão do formulário seja disparado para que o upload comece. Mas se fizer isso e não cancelar o evento padrão de submissão do Angular, sua página vai recarregar, o que não se faz em Single Page Application.
Agora que você entendeu o problema, a parte do código do servidor você pode se basear no meu exemplo, mas já o do Angular, bem, você teria que escrever muito código para fazer o upload.
A boa notícia é que há diretivas que se encarregarão de fazer o upload para você.
Uma delas é essa:
https://github.com/danialfarid/ng-file-upload
Então, primeiro sugiro dominar a parte do backend e fazer um upload padrão, fora do Angular. Depois que seu backend estiver funcionando, você pode tentar os dezenas de diretivas (plugins) do Angular que te auxiliarão no processo de envio do arquivo.
É que toda SPA (Single Page Application) é mais complexa do que aplicações tradicionais, porque tudo fica na mão do dev e precisa ser feito via JavaScript. Os frameworks ajudam bastante.