Heim  >  Artikel  >  Web-Frontend  >  So schreiben Sie Code für den Vue-Batch-Upload

So schreiben Sie Code für den Vue-Batch-Upload

WBOY
WBOYOriginal
2023-05-08 09:38:061147Durchsuche

In den letzten Jahren sind Front-End-Frameworks für viele Front-End-Entwickler zum Werkzeug der Wahl geworden, wobei vue.js von Entwicklern aufgrund seiner einfachen Lernkurve und einfachen Wartung bevorzugt wird. In vue.js ist die Implementierung der Datei-Upload-Funktion eine der häufigsten Anforderungen, und verschiedene Websites verwenden den Batch-Upload. Wie implementiert man also einen Batch-Upload in vue.js? Im Folgenden wird detailliert vorgestellt, wie vue.js den Batch-Upload implementiert.

1. Einfacher Datei-Upload

Bevor wir den Batch-Upload einführen, werfen wir zunächst einen Blick auf die einfache Implementierung des Einzeldatei-Uploads in vue.js. Angenommen, die Datei, die wir hochladen möchten, lautet wie folgt:

<input type="file" @change="handleFileUpload"/>

Fügen Sie die Funktion handleFileUpload in den Methoden von vue.js hinzu, um das Hochladen von Dateien zu verarbeiten:

handleFileUpload() {
  const file = event.target.files[0]; //获取文件对象
  const formData = new FormData(); //建立FormData对象
  formData.append('file', file); //将文件添加到FormData中
  axios.post('/file/upload', formData)//使用axios发送post请求上传文件
       .then(response => {
        console.log(response);//上传成功后的响应结果
       })
}

In diesem Code Wir verwenden die Axios-Bibliothek, um Post-Anfragen zum Hochladen von Dateien zu senden. Dies kann jedoch auch mit jeder anderen Bibliothek oder nativem Ajax erreicht werden. Natürlich müssen wir in tatsächlichen Projekten möglicherweise Authentifizierungstoken oder CSRF-Token verwenden, um die Sicherheit zu gewährleisten.

2. Hochladen mehrerer Dateien

Nachdem wir das Hochladen einzelner Dateien verstanden haben, stellen wir die Methode von vue.js vor, um das Hochladen mehrerer Dateien zu implementieren. Fügen Sie die Eingabe von Mehrfachauswahldateien in HTML hinzu:

<input type="file" ref="fileInput" @change="handleMultipleFileUpload" multiple>

Fügen Sie dann die Funktion handleMultipleFileUpload in den Methoden hinzu:

handleMultipleFileUpload() {
  const files = this.$refs.fileInput.files;//获取上传的文件对象
  const formData = new FormData();//建立FormData对象
  for(let i=0 ;i<files.length ;i++){
    formData.append('files', files[i]);//将文件添加到FormData对象中
  }
  axios.post('/file/multiple_upload', formData)//发送post请求上传多个文件
       .then(response => {
         console.log(response);//上传成功后的响应结果
       })
}

Mit diesem Code können wir mehrere Dateien und einzelne Dateien hochladen , müssen Sie nacheinander Dateien zum formData-Objekt hinzufügen. Ich glaube, Sie können bereits verstehen, wie Sie einfach mehrere Dateien in vue.js hochladen.

3. Implementieren Sie das Hochladen mehrerer Dateien mit Fortschrittsbalken.

Die oben genannte Funktion zum Hochladen mehrerer Dateien muss jedoch weiter ausgebaut werden. Wenn wir beispielsweise den Upload-Fortschrittsbalken anzeigen möchten, müssen wir den Upload-Status nicht erst nach erfolgreichem Upload kennen, sondern das XMLHttpRequest-Objekt verwenden, um den Upload-Fortschrittsbalken zu implementieren. Der Code lautet wie folgt:

handleMultipleFileUpload() {
    const files = this.$refs.fileInput.files;//获取上传的文件对象
    const formData = new FormData(); //建立FormData对象
    for(let i=0 ;i<files.length ;i++){
      formData.append('files', files[i]); //将文件添加到FormData对象中
    }
    const xhr = new XMLHttpRequest();//创建XMLHttpRequest对象实现进度条
    //upload.addEventListener用于上传进度监听
    xhr.upload.addEventListener("progress", function(evt){
      if(evt.lengthComputable){
        const percentComplete = Math.round(evt.loaded * 100 / evt.total);//计算上传进度
        console.log(`上传进度:${percentComplete}%`);
      }
    }, false);
    //ajax完成后触发的事件
    xhr.onreadystatechange=function(evt){
      if(xhr.readyState===4){//上传完成
        console.log(xhr.responseText);//上传完成后的响应结果
      }
    }
    //发送post请求上传文件
    xhr.open("POST", "/file/multiple_upload");
    xhr.send(formData);
  }

Wenn wir spezielle Dateien wie Streaming-Medien und große Dateimengen hochladen, kann die oben beschriebene Methode zum Hochladen möglicherweise eingeschränkt sein. Daher ist es sehr wichtig, die Arten der hochgeladenen Dateien, Dateigrößenbeschränkungen, Netzwerkgeschwindigkeit, Benutzeranforderungen usw. zu verstehen und die entsprechende Upload-Methode auszuwählen.

Zusammenfassend stellt dieser Artikel die Methode von vue.js zum Implementieren des Hochladens einzelner Dateien und mehrerer Dateien vor und realisiert die Wirkung des Upload-Fortschrittsbalkens über das XMLHttpRequest-Objekt. Ich glaube, dass diese Methoden Ihnen dabei helfen können, die Datei-Upload-Funktion besser abzuschließen. Gleichzeitig muss in tatsächlichen Projekten auch berücksichtigt werden, wie der Back-End-Server mit hochgeladenen Dateien umgeht und wie Dateilecks, Datenmanipulation und andere damit zusammenhängende Probleme verhindert werden können.

Das obige ist der detaillierte Inhalt vonSo schreiben Sie Code für den Vue-Batch-Upload. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn