Heim > Web-Frontend > js-Tutorial > Wie übertrage ich Dateien mit JavaScript an einen Server?

Wie übertrage ich Dateien mit JavaScript an einen Server?

Mary-Kate Olsen
Freigeben: 2024-11-15 07:51:02
Original
500 Leute haben es durchsucht

How to Transmit Files to a Server Using JavaScript?

Datei-Upload mit JavaScript

Wenn eine Webseite es Benutzern ermöglicht, Dateien mithilfe eines Dateieingabeelements auszuwählen, kann der Name der ausgewählten Datei abgerufen werden document.getElementById("image-file").value. Doch wie übermittelt man diese Datei an einen Server?

Für Datei-Uploads bietet JavaScript mehrere Ansätze. Eine Option ist die Verwendung der Fetch-API:

Pure JS (Fetch)

let photo = document.getElementById("image-file").files[0];
let formData = new FormData();
     
formData.append("photo", photo);
fetch('/upload/image', {method: "POST", body: formData});
Nach dem Login kopieren

Dieser Ansatz erstellt ein formData-Objekt, hängt die ausgewählte Datei daran an und verwendet Fetch, um die formData an die angegebene URL zu senden.

Benachrichtigung zum Datei-Upload-Status

Um auf den Abschluss des Datei-Uploads zu warten, können Sie das XMLHttpRequest-Objekt verwenden, um ein FormData-Objekt zu erstellen und legen Sie seinen onreadystatechange-Ereignis-Listener fest. Wenn der Datei-Upload abgeschlossen ist, ist die readyState-Eigenschaft des Ereignisses 4.

// Register file input
const fileInput = document.getElementById('image-file');

// Add event listener for onreadystatechange
fileInput.addEventListener('change', (e) => {
  const files = e.target.files;
  
  if (files.length > 0) {
    // Create a FormData object
    const formData = new FormData();
    
    // Append selected files to FormData object
    for (const file of files) {
      formData.append('files', file);
    }

    // Create an XMLHttpRequest object
    const xhr = new XMLHttpRequest();

    // Open a POST request to the server
    xhr.open('POST', '/upload/image');

    // Set the onreadystatechange event listener
    xhr.onreadystatechange = () => {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          // File upload completed successfully
          console.log('File uploaded successfully!');
        } else {
          // File upload failed
          console.error('File upload failed!');
        }
      }
    };

    // Send the FormData object
    xhr.send(formData);
  }
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie übertrage ich Dateien mit JavaScript an einen Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage