0Pricing
React Academy · Leçon

Entrée de fichier et lecture des données

Gérer , lire les métadonnées des fichiers et prévisualiser des images avec FileReader.

Entrée de fichier et lecture des données est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

Bienvenue

Dans cette leçon, vous gérerez des champs de fichier dans React, lirez les métadonnées des fichiers, prévisualiserez les images sélectionnées et utiliserez l'API FileReader pour traiter le contenu des fichiers.

L'élément de champ de fichier

L'élément `` ne peut pas être contrôlé par la propriété value de React : il est toujours non contrôlé. Lisez le fichier sélectionné depuis `e.target.files[0]` dans le gestionnaire 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} />;
}

Propriétés de l'objet fichier

Un objet fichier étend Blob et possède : `name` (nom du fichier), `size` (octets), `type` (type MIME comme 'image/png') et `lastModified` (horodatage). Lisez ces propriétés avant l'envoi ou le traitement.

Accepter des types de fichiers précis

Utilisez l'attribut `accept` pour indiquer au navigateur quels types de fichiers afficher. Combinez les types MIME et les extensions. Validez toujours les fichiers côté serveur également.
<input type="file" accept="image/png,image/jpeg,.pdf" />

Sélectionner plusieurs fichiers

Ajoutez l'attribut `multiple` pour permettre la sélection de plusieurs fichiers. `e.target.files` renvoie une FileList : convertissez-la en tableau avec `Array.from()` afin d'utiliser les méthodes de tableau.
<input type="file" multiple />

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

Prévisualiser une image avec URL.createObjectURL

Créez une URL temporaire de prévisualisation pour un fichier image sélectionné avec `URL.createObjectURL(file)`. Pensez à la révoquer avec `URL.revokeObjectURL` lorsque vous avez terminé afin de libérer la mémoire.
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" />}

Lire le contenu d'un fichier avec FileReader

Utilisez l'API `FileReader` pour lire le contenu du fichier sous forme de texte ou d'URL de données. Appelez `reader.readAsText(file)` pour les fichiers texte ou `reader.readAsDataURL(file)` pour les fichiers binaires comme les images.
const reader = new FileReader();
reader.onload = (e) => setContent(e.target.result);
reader.readAsText(file);

Validation de la taille des fichiers

Validez la taille du fichier côté client avant l'envoi. Refusez les fichiers dépassant un seuil et affichez un message d'erreur.
const MAX_SIZE = 5 * 1024 * 1024; // 5 MB
if (file.size > MAX_SIZE) {
  setError('File must be under 5 MB');
  return;
}

Effacer le champ de fichier

Vous ne pouvez pas effacer un champ de fichier en définissant sa valeur, car celle-ci est accessible en lecture seule. Réinitialisez-le plutôt impérativement par l'intermédiaire d'une référence ou en modifiant la propriété `key` du champ pour forcer son remontage.
const inputRef = useRef();
const clear = () => { inputRef.current.value = ''; };
<input ref={inputRef} type="file" />

Stocker les références de fichiers dans l'état

Stockez l'objet fichier lui-même dans l'état, et pas seulement son nom ou son URL. Vous pourrez ainsi envoyer le fichier ultérieurement sans le relire depuis le DOM.
const [file, setFile] = useState(null);
const handleChange = (e) => setFile(e.target.files[0] || null);

Vérification rapide

Quelle méthode crée une URL temporaire pour prévisualiser une image sélectionnée dans le navigateur ?

Récapitulatif

Lisez les fichiers sélectionnés depuis e.target.files. Utilisez URL.createObjectURL pour les prévisualisations, FileReader pour lire leur contenu, validez leur taille côté client et stockez l'objet fichier dans l'état pour un envoi ultérieur.

À suivre

Prochaine leçon : **Interface de téléversement de fichiers par glisser-déposer** — vous créerez une zone de glisser-déposer avec un retour visuel à l'aide des événements React.

Questions Fréquemment Posées

La leçon « Entrée de fichier et lecture des données » est-elle gratuite ?

Oui — le texte complet de « Entrée de fichier et lecture des données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Entrée de fichier et lecture des données » ?

Gérer , lire les métadonnées des fichiers et prévisualiser des images avec FileReader. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Entrée de fichier et lecture des données » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Entrées non contrôlées avec useRef
  2. Entrée de fichier et lecture des données
  3. Interface de téléversement par glisser-déposer
  4. Téléverser des fichiers vers une API principale
← Retour à React Academy