MetaTrader-4 uses .mq4 as code, and .ex4 as run-time.
I wouldnt recommend allowing .ex4, as it may contain viruses, etc.
at the moment, if I upload .mq4, I just rename it to .txt, and get the user to rename it back, once downloaded.
an MT-4 template has file extension .mqt.
EDIT: (Dec-15, 9:20am): has occurred to me, if users simply zip the files before uploading, all the issues with different file extensions are solved in one stroke.