Como posso carregar arquivos de forma assíncrona?

Eu gostaria de fazer upload de um arquivo de forma assíncrona com jQuery. Este é meu HTML:

<span>File</span>
<input type="file" id="file" name="file" size="10"/>
<input id="uploadbutton" type="button" value="Upload"/>

E aqui meuJquery código:

$(document).ready(function () {
    $("#uploadbutton").click(function () {
        var filename = $("#file").val();

        $.ajax({
            type: "POST",
            url: "addFile.do",
            enctype: 'multipart/form-data',
            data: {
                file: filename
            },
            success: function () {
                alert("Data Uploaded: ");
            }
        });
    });
});

Em vez do arquivo que está sendo carregado, estou recebendo apenas o nome do arquivo. O que posso fazer para corrigir esse problema?

Solução Atual

Estou usando oPlugin de formulário jQuery para fazer upload de arquivos.

questionAnswers(30)

yourAnswerToTheQuestion