Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich den Dateidownload auslösen, wenn ich auf die HTML-Schaltfläche oder auf JavaScript klicke?

Wie kann ich den Dateidownload auslösen, wenn ich auf die HTML-Schaltfläche oder auf JavaScript klicke?

王林
王林nach vorne
2023-09-12 12:49:02992Durchsuche

Wie kann ich den Dateidownload auslösen, wenn ich auf die HTML-Schaltfläche oder auf JavaScript klicke?

Heutzutage ermöglichen viele Anwendungen Benutzern das Hochladen und Herunterladen von Dateien. Mit Tools zur Plagiatserkennung können Benutzer beispielsweise eine Dokumentdatei hochladen, die Text enthält. Anschließend wird auf Plagiate geprüft und ein Bericht erstellt, den Benutzer herunterladen können.

Jeder weiß, wie man mit dem Eingabetyp „Datei“ eine Datei-Upload-Schaltfläche erstellt, aber nur wenige Entwickler wissen, wie man mit JavaScript/JQuery eine Datei-Download-Schaltfläche erstellt.

In diesem Tutorial lernen Sie verschiedene Möglichkeiten kennen, einen Dateidownload auszulösen, wenn auf eine HTML-Schaltfläche oder JavaScript geklickt wird.

Verwenden Sie das HTML-Tag und das Download-Attribut, um den Dateidownload auszulösen, wenn auf die Schaltfläche geklickt wird

Immer wenn wir das Download-Attribut zum -Tag hinzufügen, können wir das -Tag als Datei-Download-Schaltfläche verwenden. Wir müssen die URL der Datei als Wert des href-Attributs übergeben, damit der Benutzer eine bestimmte Datei herunterladen kann, wenn er auf den Link klickt.

Grammatik

Benutzer können mit dem Tag eine Schaltfläche zum Herunterladen von Dateien gemäß der folgenden Syntax erstellen.

<a href = "file_path" download = "file_name">

In der obigen Syntax haben wir das Download-Attribut und den Dateinamen als Wert des Download-Attributs hinzugefügt.

Parameter

  • Dateipfad – Dies ist der Pfad zu der Datei, die der Benutzer herunterladen soll.

Beispiel 1

wird übersetzt als:

Beispiel 1

Im folgenden Beispiel übergeben wir die Bild-URL als Wert des href-Attributs des HTML-Tags . Wir verwenden den Download-Button als Ankertext für den -Tag

Jedes Mal, wenn der Benutzer auf die Schaltfläche klickt, kann er sehen, dass dadurch der Dateidownload ausgelöst wird.

<html>
   <body>
      <h3> Using the <i> download attribute of <a> tag </i> to create file download button using JavaScript. </h3>
      <p> Click the below button to download the image file </p>
      <a href = "https://images.pexels.com/photos/268533/pexels-photo-268533.jpeg?cs=srgb&dl=pexels-pixabay-268533.jpg&fm=jpg"
      Download = "test_image">
         <button type = "button"> Download </button>
      </a>
   </body>
</html>

Verwenden Sie die window.open()-Methode

Die Methode window.open() öffnet eine URL in einem neuen Tab. Wir können die URL als Parameter der open()-Methode übergeben.

Wenn die open()-Methode die URL nicht öffnen kann, wird der Dateidownload ausgelöst.

Grammatik

Benutzer können die Methode window.open() gemäß der folgenden Syntax verwenden, um eine Schaltfläche zum Herunterladen von Dateien zu erstellen.

window.open("file_url")

In der obigen Syntax übergeben wir die Datei-URL als Parameter der Methode window.open().

Beispiel 2

Im folgenden Beispiel wird jedes Mal, wenn der Benutzer auf die Schaltfläche klickt, die Funktion downloadFile() ausgelöst. In der Funktion downloadFile() löst die Methode window.open() das Herunterladen von Dateien aus.

<html>
<body>
   <h3> Using the <i> window.open() method </i> to create a file download button using JavaScript. </h3>
   <p> Click the below button to download the image file </p>
   <button type = "button" onclick = "downloadFile()"> Download </button>
</body>
   <script>
      function downloadFile() {
         window.open("https://images.pexels.com/photos/268533/pexels-photo-268533.jpeg?cs=srgb&dl=pexels-pixabay-268533.jpg&fm=jpg")
      }
   </script>
</html>

Erhalten Sie Benutzereingaben, erstellen Sie eine Datei mit dieser Eingabe und erlauben Sie dem Benutzer, die Datei herunterzuladen

Diese Methode ermöglicht es dem Benutzer, Text in das Eingabefeld zu schreiben. Anschließend erstellen wir anhand des eingegebenen Textes eine neue Datei und ermöglichen dem Benutzer, die Datei herunterzuladen.

Grammatik

Benutzer können eine Datei mit benutzerdefiniertem Text gemäß der folgenden Syntax erstellen und Benutzern den Download ermöglichen.

var hidden_a = document.createElement('a'); 
hidden_a.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(texts)); 
hidden_a.setAttribute('download', "text_file"); 
document.body.appendChild(hidden_a); hidden_a.click(); 

In der obigen Syntax haben wir den Text codiert, um ihn an die Datei anzuhängen, und ihn mit den Tags erstellt.

Algorithmus

  • Schritt 1 – Holen Sie sich den Text, indem Sie auf die HTML-Eingabe zugreifen.

  • Schritt 2 - Erstellen Sie ein benutzerdefiniertes HTML -Tag mit der JavaScript-Methode createElement().

  • Schritt 3 - Verwenden Sie die Methode setAttribute(), um das href-Attribut für das HTML-Element „hidden_a“ festzulegen. Verwenden Sie den codierten Text als Wert des href-Attributs.

  • Schritt 4 - Verwenden Sie die Methode setAttribute() erneut und setzen Sie das Download-Attribut auf den Download-Dateinamenwert des versteckten Elements versteckt_a.

  • Schritt 5 – Hängen Sie das Hidden_a-Element an den Körper an.

  • Schritt 6 – Verwenden Sie die Methode click(), um einen Klick auf das Element „hidden_a“ auszulösen. Wenn die Methode click() aufgerufen wird, beginnt der Download.

  • Schritt 7 – Entfernen Sie das Hidden_a-Element mit der Methode „removeChild()“ aus dem Dokumentkörper.

Die chinesische Übersetzung von

Beispiel 3

lautet:

Beispiel 3

Im folgenden Beispiel können Benutzer einen beliebigen benutzerdefinierten Text in das Eingabefeld eingeben und auf die Schaltfläche klicken, um den Dateidownload mithilfe von JavaScript auszulösen. Wir haben den oben genannten Algorithmus implementiert, um einen Dateidownload auszulösen.

<html>
<body>
   <h3> Create the file from the custom text and allow users to download that file </h3>
   <p> Click the below button to download the file with custom text. </p>
   <input type = "text" id = "file_text" value = "Entetr some text here.">
   <button type = "button" onclick = "startDownload()"> Download </button>
</body>
   <script>
      function startDownload() {
         // access the text from the input field
         let user_input = document.getElementById('file_text');
         let texts = user_input.value;
         
         // Create dummy <a> element using JavaScript.
         var hidden_a = document.createElement('a');
         
         // add texts as a href of <a> element after encoding.
         hidden_a.setAttribute('href', 'data:text/plain;charset=utf-8, '+ encodeURIComponent(texts));
         
         // also set the value of the download attribute
         hidden_a.setAttribute('download', "text_file");
         document.body.appendChild(hidden_a);
         
         // click the link element
         hidden_a.click();
         document.body.removeChild(hidden_a);
      }
   </script>
</html>

Erstellen Sie mit der Axios-Bibliothek eine Schaltfläche zum Herunterladen von Dateien

Mit der Axios-Bibliothek können wir Daten von jeder URL abrufen. Wir rufen also die Daten von einer beliebigen URL oder einem beliebigen Dateipfad ab und legen diese Daten dann als Wert des href-Attributs des -Tags fest. Zusätzlich fügen wir das Download-Attribut mit der setAttribute()-Methode zum -Tag hinzu und lösen den Dateidownload mit der click()-Methode aus.

Grammatik

Benutzer können Axios und JavaScript verwenden, um Dateidownloads gemäß der folgenden Syntax auszulösen.

let results = await axios({
   url: 'file_path',
   method: 'GET',
   responseType: 'blob'
})
// use results as a value of href attribute of <a> tag to download file
hidden_a.href = window.URL.createObjectURL(new Blob([results.data]));

In der obigen Syntax ermöglicht uns die Methode axios.get(), die Daten aus dem Dateipfad abzurufen, der in der Ergebnisvariablen gespeichert ist. Danach verwenden wir den neuen Blob()-Konstruktor, um die Daten in ein Blob-Objekt zu konvertieren.

Die chinesische Übersetzung von

Beispiel 4

lautet:

Beispiel 4

Im folgenden Beispiel verwenden wir axios, um die Daten von der URL abzurufen, sie in ein Blob-Objekt zu konvertieren und sie als Wert des href-Attributs festzulegen.

Danach haben wir per JavaScript auf das
-Element geklickt, um den Dateidownload auszulösen.

<html>
<head>
   <script src = "https://cdnjs.cloudflare.com/ajax/libs/axios/1.3.1/axios.min.js"> </script>
</head>
<body>
   <h3> Using the <i> axios library </i> to trigger a download file. </h3>
   <p> Click the below button to download the file with custom text. </p>
   <button type = "button" onclick = "startDownload()"> Download </button>
</body>
   <script>
      async function startDownload() {
         // get data using axios
         let results = await axios({
            url: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTZ4gbghQxKQ00p3xIvyMBXBgGmChzLSh1VQId1oyhYrgir1bkn812dc1LwOgnajgWd-Yo&usqp=CAU',
            method: 'GET',
            responseType: 'blob'
         })
         let hidden_a = document.createElement('a');
         hidden_a.href = window.URL.createObjectURL(new Blob([results.data]));
         hidden_a.setAttribute('download', 'download_image.jpg');
         document.body.appendChild(hidden_a);
         hidden_a.click();
      }
   </script>
</html>

Das obige ist der detaillierte Inhalt vonWie kann ich den Dateidownload auslösen, wenn ich auf die HTML-Schaltfläche oder auf JavaScript klicke?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen