Seguro que como desarrollador para subir ficheros a tu aplicación utilizas normalmente un componente en flash o java, pero eso siempre representa un problema porque necesitamos activar ese módulo java o flash. Ahorra ya podemos hacerlo con HTML5, y crear un formulario para subir ficheros con barra de progreso incluido.
Esta solución para subir tus ficheros con HTML5 y Javascript sin necesidad de librerías adicionales. Haciendo uso de FileReader (html5) para implementar la vista previa de imágenes sin subirlas al servidor y usando XMLHttpdRequest para subir los datos al servidor.
Descargar y demo: Pure HTML5 upload form. Más opciones HTML5 para subir ficheros con jQuery y PLupload es un plugin GPL y comercial con opciones para subir ficheros no solo con HTML5, también flash.
Actualización: Usando Session Upload Progress nos indica Asier Marques que también podemos hacerlo incluso sin Flash y sin HTML5, solo con PHP (subir ficheros con PHP).
Actualización: Otra elegante forma de subir ficheros o imágenes con Ajax. Gracias a José Luiz Antúnez