1) Можно традиционным образом. В форме использовать тег input с типом file с выставленным ограничением принимать только *.mp3. Форма отправляется по кнопке с типом submit.
2) Продвинутым способом. В форме также используется тег input с типом file с выставленным ограничением принимать только *.mp3. Отличие в том, что вам нужно поля формы отправить непременно только через ajax-запрос. В этом случае поле с файлом вычитывается с помощью объекта FileReader (старые браузеры его не имеют, например, IE 10-, так что для них не катит способ), формируется особым образом бинарный пакет запроса и этот пакет в виде base64 передается аяксом на сервер.
PS: какой бы способ отправки вы бы не выбрали, файл в любом случае можно прицепить к форме только по инициативе пользователя, не зависит от того, используете вы простую отправку формы или пытаетесь забрать файл из input-а FileReader-ом.