Maison  >  Article  >  interface Web  >  Parlons de trois méthodes de téléchargement d'images Vue

Parlons de trois méthodes de téléchargement d'images Vue

PHPz
PHPzoriginal
2023-04-26 14:22:017661parcourir

Avec le développement d'Internet, le téléchargement d'images est devenu une fonction importante dans le développement quotidien. Dans le développement de Vue, nous disposons également de nombreuses façons d'implémenter le téléchargement d'images, telles que l'utilisation de plug-ins tiers, d'Ajax natif et l'utilisation de FileReader de HTML5. Cet article présentera ces trois façons de télécharger des images ainsi que leurs avantages et inconvénients respectifs. J'espère qu'il vous sera utile.

1. Utiliser des plug-ins tiers

Dans le développement de Vue, nous pouvons utiliser certains plug-ins tiers largement utilisés pour télécharger des images, tels que Vue-Upload, Vue-Core-Image-Upload, etc. Ces plug-ins ont été utilisés et testés par de nombreuses personnes, peuvent accélérer efficacement notre processus de développement et peuvent être rapidement intégrés dans nos projets. Ici, nous prenons Vue-Upload comme exemple pour expliquer comment l'utiliser.

La première étape consiste à installer le plug-in, entrez dans la ligne de commande :

npm install vue-upload

La deuxième étape consiste à introduire le plug-in, introduisez Vue-Upload dans le composant qui doit être utilisé :

import VueUpload from 'vue-upload'

Le la troisième étape consiste à l'utiliser dans le composant, nous utiliserons un bouton comme déclencheur pour sélectionner des images, puis utiliserons la fonction Vue-Upload pour télécharger des images :

<button @click="upload()">选择文件</button>
<VueUpload ref="upload"
           :post-action="&#39;url&#39;"
           :headers="headers"
           :name="&#39;file&#39;"
           @input="onUpload"></VueUpload>

Parmi eux, la post-action est l'adresse de téléchargement, les en-têtes sont les en-têtes de requête et name est le nom du champ du fichier. La méthode onUpload est la méthode appelée une fois le téléchargement terminé.

L'avantage de Vue-Upload est qu'il est rapide et pratique, mais l'inconvénient est également évident, c'est-à-dire que nous ne pouvons pas entièrement personnaliser la fonction de téléchargement.

2. Native Ajax

Vue prend également en charge les requêtes Ajax natives pour terminer les téléchargements d'images. Nous pouvons implémenter une zone de saisie dans le composant, puis utiliser Ajax pour télécharger le fichier sélectionné dans l'entrée sur le serveur. Cette méthode nous oblige à mettre en œuvre nous-mêmes le processus de téléchargement complet, y compris la progression du téléchargement, la gestion des exceptions, etc., mais nous pouvons librement personnaliser la fonction de téléchargement et ne serons pas limités par des plug-ins tiers.

La première étape consiste à ajouter une zone de saisie au modèle :

<input ref="file" type="file" @change="upload()">

La deuxième étape consiste à implémenter la logique de téléchargement dans les méthodes de Vue :

upload: function () {
  const fileInput = this.$refs.file;
  const file = fileInput.files[0]
  const formData = new FormData();
  formData.append('file', file);

  axios.post('/upload', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    },
    onUploadProgress: e => {
      // 上传进度的处理逻辑
    }
  }).then(res => {
    // 上传成功的处理逻辑
  }).catch(err => {
    // 异常处理逻辑
  })
}

Ce code utilise axios pour envoyer des requêtes Ajax, nous pouvons le faire nous-mêmes Choisissez-en un autre bibliothèque de requêtes réseau. onUploadProcess est la fonction de rappel de la progression du téléchargement, dans laquelle nous pouvons implémenter la logique de traitement de la progression du téléchargement.

3. Utiliser FileReader de HTML5

FileReader de HTML5 offre une nouvelle façon de lire des fichiers sur l'appareil local de l'utilisateur, que nous pouvons utiliser pour terminer le téléchargement d'images. Cette méthode peut éviter la soumission par défaut du navigateur et le saut de page, et est plus conviviale à combiner avec la méthode de développement de composants de Vue.

La première étape consiste à définir une variable image et un objet fileReader dans les données du composant :

data: function () {
  const fileReader = new FileReader();
  fileReader.onload = () => {
    this.image = fileReader.result;
  };
  
  return {
    image: null,
    fileReader: fileReader
  };
}

La deuxième étape consiste à implémenter la logique de lecture et de téléchargement de fichiers dans les méthodes du composant :

upload: function () {
  const fileInput = this.$refs.file;
  const file = fileInput.files[0]
  this.fileReader.readAsDataURL(file);
},
submit: function () {
  const image = this.image;
  axios.post('/upload', {image: image})
    .then(res => {
      // 上传成功的处理逻辑
    }).catch(err => {
      // 异常处理逻辑
    })
}

Ici, nous lisons l'image Enfin , elle est stockée dans une variable d'image, puis l'image est soumise au serveur. L'avantage de cette méthode est qu'elle possède une interface conviviale et une logique de traitement d'image claire. L'inconvénient est qu'elle ne peut pas prendre en charge l'affichage de la progression du téléchargement.

Résumé

Cet article présente trois méthodes pour implémenter le téléchargement d'images dans Vue. Elles utilisent des plug-ins tiers, Ajax natif et FileReader utilisant HTML5. Chaque méthode a ses avantages et ses inconvénients, et les développeurs peuvent choisir la méthode appropriée en fonction des besoins réels du projet. Le téléchargement d'images est une fonction courante, et la maîtrise de ces méthodes de téléchargement est également l'une des compétences essentielles des développeurs Vue.

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!

Déclaration:
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