Heim > Web-Frontend > js-Tutorial > Wie lade ich eine Datei ohne Formular mit JavaScript hoch?

Wie lade ich eine Datei ohne Formular mit JavaScript hoch?

PHPz
Freigeben: 2023-09-09 23:45:03
nach vorne
1450 Leute haben es durchsucht

如何使用 JavaScript 上传没有表单的文件?

Manchmal müssen Entwickler möglicherweise Dateien hochladen, ohne JavaScript-Formulare zu verwenden. Normalerweise erstellen wir ein Formular, um Daten und Dateien vom Benutzer abzurufen. In diesem Tutorial erfahren wir jedoch, wie wir die Dateien ohne Formular vom Benutzer abrufen und an das Backend senden.

Verwendung von FormData()-Objekten und Ajax-Anfragen

Das

FormData-Objekt ermöglicht es uns, Formulardaten in Schlüssel-Wert-Paaren zu speichern. Wir müssen den Konstruktor verwenden, um Variablen zu initialisieren. Wir können dem Benutzer erlauben, eine Datei mithilfe der HTML-Eingabe hochzuladen und diese Datei in den Formulardaten zu speichern. Anschließend können wir die Formulardaten an das Backend senden.

Grammatik

Benutzer können der folgenden Syntax folgen, um Dateien mithilfe des FormData()-Objekts und einer Ajax-Anfrage ohne Verwendung eines Formulars hochzuladen.

form_data.append("file", uploadedFile);
$.ajax({
   url: "URL",
   method: "POST",
   data: form_data,
}); 
Nach dem Login kopieren

In der obigen Syntax verwenden wir die Methode append(), um eine Datei zum Formulardatenobjekt hinzuzufügen. Zusätzlich verwenden wir ajax(), um Daten an die API zu senden.

Beispiel

Im folgenden Beispiel haben wir mit dem -Tag eine Dateieingabe in HTML erstellt. Wenn in JavaScript ein Benutzer eine Datei hochlädt, greifen wir darauf zu und fügen sie dem form_data-Objekt hinzu.

Danach senden wir die Datei per POST-Anfrage mit Ajax an die API.

<html>
<head>
   <script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
</head>
<body>
   <h3>Using the <i>FormData object and ajax request</i> to upload a file without using the form data in JavaScript</h3>
   <input type = "file" name = "file" id = "file_input" />
   <div id = "content"> </div>
   <script>
      $(document).on('change', '#file_input', function () {
         let uploadedFile = document.getElementById('file_input').files[0];
         var form_data = new FormData();
         form_data.append("file", uploadedFile);
         $.ajax({
            url: "URL",
            method: "POST",
            data: form_data,
         });
      });
   </script>
</body>
</html>
Nach dem Login kopieren

Einfaches Upload-Plugin mit jQuery

jQuery enthält ein einfaches Upload-Plugin, mit dem wir Dateien an die API senden können. Wir müssen das CDN des einfachen Upload-Plugins zum Abschnitt hinzufügen, um es verwenden zu können. Wenn ein Entwickler die Anwendung verwendet, kann er NPM-Befehle verwenden, um das Paket zu installieren.

Grammatik

Benutzer sollten die folgende Syntax befolgen, um formularlose Dateien mit JavaScript und dem jQuery Simple Upload-Plugin hochzuladen.

$(this).simpleUpload("URL", {
   start: function (file) {
      
      //upload started
   },
});
Nach dem Login kopieren

In der obigen Syntax rufen wir die Funktion simpleUpload() des einfachen Upload-Plug-Ins auf, um Dateien hochzuladen.

Beispiel

Im folgenden Beispiel haben wir den Pfad zur Datei simpleUpload.min.js im Abschnitt hinzugefügt. Wir haben der Dateieingabe ein „Änderungs“-Ereignis hinzugefügt. In der Callback-Funktion rufen wir die Funktion simpleUpload() mit der Dateieingabe als Referenz auf. Wir übergeben dieses Objekt als zweiten Parameter der Funktion simpleUpload() mit dem Schlüssel und der Rückruffunktion als Werte.

<html>
<head> 
   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
   <script src= "https://cdn.jsdelivr.net/npm/jquery-simpleupload@1.1.0/simpleUpload.min.js"> </script>
</head>
<body>
   <h3>Using the <i>jQuery simple upload</i> plugin to upload the file without using the form</h3>
   <input type = "file" name = "file" id = "file_input">
   <div id = "content"> </div>
   <script>
      $('#file_input').change(function () {
         $(this).simpleUpload("abcd.php", {
            start: function (file) {
               
               //upload started
               content.innerHTML = "upload started";
            },
         });
      });
   </script>
</body>
</html> 
Nach dem Login kopieren

Benutzer haben zwei verschiedene Möglichkeiten zum Hochladen von Dateien kennengelernt, ohne Formulare in JavaScript zu verwenden. In der ersten Methode haben wir das FormData-Objekt und die ajax()-Methode verwendet. Bei der zweiten Methode haben wir das einfache Upload-Plugin von Jquery verwendet.

Das obige ist der detaillierte Inhalt vonWie lade ich eine Datei ohne Formular mit JavaScript hoch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage