0Pricing
React Academy · Lección

Input de archivo y lectura de datos

Gestione , lea los metadatos del archivo y previsualice imágenes con FileReader.

Input de archivo y lectura de datos es una lección gratuita de React Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.

Bienvenida

En esta lección gestionará entradas de archivo en React, leerá metadatos de archivos, previsualizará imágenes seleccionadas y utilizará la API FileReader para procesar el contenido de los archivos.

El elemento de entrada de archivo

El elemento `` no puede ser controlado por la prop value de React; siempre es no controlado. Lea el archivo seleccionado desde `e.target.files[0]` en el controlador onChange.
function FileInput() {
  const handleChange = (e) => {
    const file = e.target.files[0];
    console.log(file.name, file.size, file.type);
  };
  return <input type="file" onChange={handleChange} />;
}

Propiedades del objeto File

Un objeto File amplía Blob y tiene: `name` (nombre del archivo), `size` (bytes), `type` (tipo MIME como 'image/png') y `lastModified` (marca de tiempo). Lea estas propiedades antes de cargar o procesar el archivo.

Aceptar tipos de archivo específicos

Use el atributo `accept` para indicar al navegador qué tipos de archivo debe mostrar. Combine tipos MIME y extensiones. Valide siempre también en el servidor.
<input type="file" accept="image/png,image/jpeg,.pdf" />

Selección de varios archivos

Añada el atributo `multiple` para permitir seleccionar varios archivos. `e.target.files` devuelve una FileList; conviértala en un array con `Array.from()` para utilizar métodos de arrays.
<input type="file" multiple />

const files = Array.from(e.target.files);

Previsualizar una imagen con URL.createObjectURL

Cree una URL temporal de previsualización para una imagen seleccionada mediante `URL.createObjectURL(file)`. Recuerde revocarla con `URL.revokeObjectURL` cuando termine para liberar memoria.
const [preview, setPreview] = useState(null);

const handleChange = (e) => {
  const file = e.target.files[0];
  if (file) setPreview(URL.createObjectURL(file));
};

useEffect(() => {
  return () => { if (preview) URL.revokeObjectURL(preview); };
}, [preview]);

{preview && <img src={preview} alt="Preview" />}

Leer el contenido de un archivo con FileReader

Use la API `FileReader` para leer el contenido del archivo como texto o como una URL de datos. Llame a `reader.readAsText(file)` para archivos de texto o a `reader.readAsDataURL(file)` para archivos binarios, como las imágenes.
const reader = new FileReader();
reader.onload = (e) => setContent(e.target.result);
reader.readAsText(file);

Validación del tamaño del archivo

Valide el tamaño del archivo en el cliente antes de cargarlo. Rechace los archivos que superen un umbral y muestre un mensaje de error.
const MAX_SIZE = 5 * 1024 * 1024; // 5 MB
if (file.size > MAX_SIZE) {
  setError('File must be under 5 MB');
  return;
}

Borrar la entrada de archivo

No puede borrar una entrada de archivo estableciendo su valor, ya que es de solo lectura. En su lugar, restablézcala de forma imperativa mediante una referencia o cambiando la prop `key` de la entrada para forzar su nuevo montaje.
const inputRef = useRef();
const clear = () => { inputRef.current.value = ''; };
<input ref={inputRef} type="file" />

Almacenar referencias a archivos en el estado

Almacene el propio objeto File en el estado (no solo el nombre o la URL). Esto le permite cargar el archivo más adelante sin volver a leerlo del DOM.
const [file, setFile] = useState(null);
const handleChange = (e) => setFile(e.target.files[0] || null);

Comprobación rápida

¿Qué método crea una URL temporal para previsualizar en el navegador una imagen seleccionada?

Resumen

Lea los archivos seleccionados desde e.target.files. Use URL.createObjectURL para las previsualizaciones y FileReader para leer el contenido, valide el tamaño en el cliente y almacene el objeto File en el estado para cargarlo más adelante.

A continuación

Siguiente lección: **Interfaz de carga de archivos mediante arrastrar y soltar** — creará una zona de arrastrar y soltar con comentarios visuales mediante eventos de React.

Preguntas frecuentes

¿La lección «Input de archivo y lectura de datos» es gratis?

Sí — el texto completo de «Input de archivo y lectura de datos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Input de archivo y lectura de datos»?

Gestione , lea los metadatos del archivo y previsualice imágenes con FileReader. Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar React Academy?

No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Input de archivo y lectura de datos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de React Academy?

Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Inputs no controlados con useRef
  2. Input de archivo y lectura de datos
  3. Interfaz de carga de archivos mediante arrastrar y soltar
  4. Subir archivos a una API de backend
← Volver a React Academy