Como processar uploads de arquivos XHR2 em PHP

Meu artigo "New Tricks in XMLHttpRequest2" tem muitos exemplos, mas não tem nenhum código do servidor para ilustrar como processar arquivos. Se você quer saber como processar um upload de arquivo usando xhr.send(FormData), confira um exemplo rápido de upload de imagem em PHP.

Esse servidor é trivial, mas demonstra duas coisas. O primeiro é enviar um arquivo e uma carga útil extra ao mesmo tempo. A segunda é como pegar o arquivo (e outros dados) em PHP. Por fim, a imagem é codificada em um URL data: e incluída em uma resposta JSON enviada de volta ao cliente.