::-webkit-file-upload-button

No estándar: Esta característica no es parte de los estándares. No la uses en sitios Web en producción: no funcionará para todos los usuarios. Podrían haber también incompatibilidades considerables entre distintas implementaciones y el comportamiento podría cambiar en el futuro.

Resumen

El pseudo-elemento  CSS ::-webkit-file-upload-button  representa el botón de los elementos <input> con  type="file".

No es estándar y es sólo soportado por los navegadores compatibles con WebKit/Blink como Chrome, Opera and Safari (esto queda indicado por el prefijo -webkit ).

Síntaxis

selector::-webkit-file-upload-button

Ejemplo

Contenido HTML

<form>
    <label for="fileUpload">Upload file</label><br>
    <input type="file" id="fileUpload">
</form>

Contenido CSS

input, label {
    display: block;
}

input[type=file]::-webkit-file-upload-button {
    border: 1px solid grey;
    background: #FFFAAA;
}

Más abajo tienes un ejemplo para probar. El pantallazo a la izquierda muestra como quedaría el botón en caso de que no puedas acceder a Chrome, Opera o Safari. 

ScreenshotLive sample

Especificaciones

No es parte de ninguna especificación. Es un pseudo-elemento propietario y específico de WebKit/Blink.

Compatibilidad con los distintos navegadores

BCD tables only load in the browser