Ваше решение - бред. opacity работает только в CSS3, следовательно этот вариант не кроссбраузерный. Это делается по-другому.
Создается элемент <input type='file' id='file'> и <div></div>. у инпута ставится css свойство display:none. Затем
$("div").click(function(){
$("#file").trigger('click');
});
После этого выбранный файл лежит в форме, которую не видно. вы можете создать кнопку <input type='submit'> или просто отслеживать событие изменения элемента с id='file'. После этого ajax'ом отправлять данные на сервер, для этого есть jquery плагин ajaxForm
плагин