Maison > interface Web > js tutoriel > Comment puis-je vérifier le type MIME d'un fichier en JavaScript avant de le télécharger ?

Comment puis-je vérifier le type MIME d'un fichier en JavaScript avant de le télécharger ?

Mary-Kate Olsen
Libérer: 2024-12-03 11:17:14
original
503 Les gens l'ont consulté

How Can I Verify a File's MIME Type in JavaScript Before Uploading?

Comment vérifier le type MIME d'un fichier avec JavaScript avant le téléchargement ?

JavaScript vous permet de vérifier le type MIME d'un fichier à l'aide de FileReader avant de le télécharger à un serveur. Bien que la vérification côté serveur soit préférable, la vérification côté client reste une option. Voyons comment :

Étape 1 : Récupérer les informations sur le fichier

Obtenir les détails du fichier à partir d'une entrée élément comme indiqué ci-dessous :

// Retrieve file information
var files = document.getElementById("your-files").files;
Copier après la connexion

Étape 2 : Inspecter les fichiers pour le type MIME

Méthode rapide :

Utiliser Blob pour extraire le type MIME :

console.log(files[i].type);  // Outputs "image/jpeg" or similar
Copier après la connexion

Bloc Méthode d'inspection d'en-tête :

Analyser l'en-tête du fichier à la recherche de « nombres magiques » spécifiques à différents types de fichiers :

var blob = files[i];  // File object
var fileReader = new FileReader();
fileReader.onloadend = function(e) {
  var arr = (new Uint8Array(e.target.result)).subarray(0, 4);
  var header = "";
  for(var i = 0; i < arr.length; i++) {
     header += arr[i].toString(16);
  }
  console.log(header);

  // Check the file signature against known types

};
fileReader.readAsArrayBuffer(blob);
Copier après la connexion

Détermination du type MIME réel :

switch (header) {
    case "89504e47":
        type = "image/png";
        break;
    case "47494638":
        type = "image/gif";
        break;
    case "ffd8ffe0":
    case "ffd8ffe1":
    case "ffd8ffe2":
    case "ffd8ffe3":
    case "ffd8ffe8":
        type = "image/jpeg";
        break;
    default:
        type = "unknown";
        break;
}
Copier après la connexion

En utilisant ces méthodes, vous pouvez déterminer le type MIME des fichiers côté client avant de les télécharger au serveur, réduisant ainsi l'utilisation inutile des ressources du serveur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal