Создайте внутри if-а переменную со значением $file_name[$form:mp3.name] и дальше используйте именно ее потому как ^form:mp3.save[binary;$form:mp3.name] такая конструкция сробатывает не всегда. С чем это связано не знаю, но сам неоднократно на этом попадался. Выдается ошибка в неправильности метода save...