Selector de archivos HTML con jQuery [duplicado]

Posible duplicado:
Leer el archivo de texto del lado del cliente usando Javascript

Quiero abrir un archivo txt en el cliente, analizarlo con javascript y publicar datos analizados en una página de servidor con ajax. Tengo scripts para analizar y publicar. Todo lo que necesito ahora es simplemente seleccionar el archivo de la computadora del cliente.

Lo que necesito es algo como esto:

<div id="content">
     <button id="selectFile" onclick="return selectFileClick();" />
</div>

Cuando el usuario hace clic en el botón, aparece un cuadro de diálogo de archivo y devuelve el archivo seleccionado. Con este nombre de archivo, haré otras operaciones como análisis, etc.

function selectFileClick()
{
    var fileName = filedialog();
    // parsing file...
    return false;
}

Editar: no quiero cargar el archivo y tengo un diseño personalizado que no se parece;

<input type="file" id="file">

Necesito algo como esto: complemento de diálogo de archivo jquery

Editar (2): resolví el problema de esta manera;

$(function () {
    $("#button1").click(function (event) {
        event.preventDefault();
        $('#file').trigger('click');
    });

    document.getElementById('file').addEventListener('change', readFile, false);
});

en html;

<input id="button1" type="submit" value="add" />
<input type="file" id="file" style="display: none">

Espero que esto ayude a alguien más ;)

preguntado el 12 de junio de 12 a las 14:06

1 Respuestas

Echa un vistazo a esto: API de archivo HTML

Esa sería probablemente la forma más fácil de hacerlo, por ejemplo

<input type="file" id="file">

Luego simplemente adjunte una función a la función "onChange" del elemento.

EDITAR: Acabo de darme cuenta de que está usando jQuery, por lo que realmente podría hacer:

$("#file").change(function() { selectFileClick(); });

Respondido el 12 de junio de 12 a las 14:06

no siempre es la mejor opción. Los navegadores actualmente tienen codificado el texto y no hay forma de que pueda cambiarlo. Se puede "cambiar" (solución alternativa) colocando una imagen superpuesta o un cuadro con estilo encima. - Tzen

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.