This is a classic problem: you want to style your <input type=”file” /> control but the options are kind of limited. The solution is to hide the control and add your own controls, passing any actions from one to the other. With jQuery this can be fairly easily achieved by the following script: $(function () { $(‘input[type=file]’).each(function () { var fileUpload = $(this); var textBox = $(‘<input type=”text” />’); textBox .css(‘width’, fileUpload.width() – 85) .css(‘margin-right’, 5) .prop(‘disabled’, fileUpload.prop(‘disabled’)); var button