Имея такую же проблему недавно и увидела эту страницу. Томас, ваш ответ великолепен и работал очень хорошо с небольшими изменениями в IE8.
Проблема в IE8 заключается в том, что текст обзора оригинальной кнопки просмотра перекрывается с новым, созданным с помощью замены кнопки. Для тех, кто испытывает ту же проблему, вы можете изменить непрозрачность оригинальной кнопки загрузки на 0:
.original-upload-button {
position: absolute;
top:0;
left:0;
width: 9999%;
margin-left: -9899%;
height: 100%;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";/* IE 8 */
filter: alpha(opacity=0);/* IE 5-7 */
-moz-opacity: 0;/* Netscape */
-khtml-opacity: 0;/* Safari 1.x */
opacity: 0;/* Good browsers */
}
Вы можете использовать другую кнопку, которая вызовет событие нажатия кнопки загрузки файла. Кнопка загрузки исходного файла останется скрытой. Я использовал имя класса Tomas 'для кнопки загрузки исходного файла, чтобы скрыть его.
Я полагаю, что это решение было бы также хорошо, если вы используете серверные элементы управления (но учтите, что вам нужно настроить привязку события click элемента управления сервером).
http://jsfiddle.net/shiego926/X98yp/
Надеюсь, этот код поможет!