Загрузка файла - это определенный тип ввода, который вы не можете легко заменить, но в некоторых браузерах вы можете его стилизовать.
Вы должны иметь доступ к имени файла из javascript и отображать его в другой части страницы (возможно, одновременно скрывая ввод файла), чтобы пользователь мог видеть, что будет выбрано.
Другой вариант - использовать Flash для более изящного внешнего интерфейса (см. http://www.flickr.com/photos/upload/ (если у вас есть учетная запись flickr) в качестве примера), но я никогда не использовал один из них в качестве разработчика