Maison > interface Web > js tutoriel > Comment télécharger un fichier sans formulaire en utilisant JavaScript ?

Comment télécharger un fichier sans formulaire en utilisant JavaScript ?

PHPz
Libérer: 2023-09-09 23:45:03
avant
1449 Les gens l'ont consulté

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

Parfois, les développeurs peuvent avoir besoin de télécharger des fichiers sans utiliser de formulaires JavaScript. Normalement, nous créons un formulaire pour obtenir les données et les fichiers de l'utilisateur, mais dans ce didacticiel, nous apprendrons à obtenir les fichiers de l'utilisateur sans formulaire et à les envoyer au backend.

Utilisation des objets FormData() et des requêtes Ajax

L'objet FormData nous permet de stocker les données du formulaire dans des paires clé-valeur. Nous devons utiliser un constructeur pour initialiser les variables. Nous pouvons permettre à l'utilisateur de télécharger un fichier à l'aide d'une entrée HTML et de stocker ce fichier dans les données du formulaire. Nous pouvons ensuite envoyer les données du formulaire au backend.

Grammaire

Les utilisateurs peuvent suivre la syntaxe ci-dessous pour télécharger des fichiers à l'aide de l'objet FormData() et de la requête ajax sans utiliser de formulaire.

form_data.append("file", uploadedFile);
$.ajax({
   url: "URL",
   method: "POST",
   data: form_data,
}); 
Copier après la connexion

Dans la syntaxe ci-dessus, nous utilisons la méthode append() pour ajouter un fichier à l'objet de données du formulaire. De plus, nous utilisons ajax() pour envoyer des données à l'API.

Exemple

Dans l'exemple ci-dessous, nous avons créé un fichier d'entrée en HTML à l'aide de la balise . En JavaScript, chaque fois qu'un utilisateur télécharge un fichier, nous y accédons et l'ajoutons à l'objet form_data.

Après cela, nous envoyons le fichier à l'API via une requête POST en utilisant ajax.

<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>
Copier après la connexion

Plugin de téléchargement simple utilisant jQuery

jQuery inclut un simple plugin de téléchargement que nous pouvons utiliser pour envoyer des fichiers à l'API. Nous devons ajouter le CDN du plugin de téléchargement simple à la section pour l'utiliser. Si un développeur utilise l'application, il peut utiliser les commandes NPM pour installer le package.

Grammaire

Les utilisateurs doivent suivre la syntaxe suivante pour télécharger des fichiers sans formulaire à l'aide de JavaScript à l'aide du plugin jQuery Simple Upload.

$(this).simpleUpload("URL", {
   start: function (file) {
      
      //upload started
   },
});
Copier après la connexion

Dans la syntaxe ci-dessus, nous appelons la fonction simpleUpload() du plug-in de téléchargement simple pour télécharger des fichiers.

Exemple

Dans l'exemple ci-dessous, nous avons ajouté le chemin d'accès au fichier simpleUpload.min.js dans la section . Nous avons ajouté un événement "change" sur l'entrée du fichier. Dans la fonction de rappel, nous appelons la fonction simpleUpload() avec l'entrée du fichier comme référence. Nous passons cet objet comme deuxième paramètre de la fonction simpleUpload() avec la clé et la fonction de rappel comme valeurs.

<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> 
Copier après la connexion

Les utilisateurs ont appris deux manières différentes de télécharger des fichiers sans utiliser de formulaires en JavaScript. Nous avons utilisé l'objet FormData et la méthode ajax() dans la première méthode. Dans la deuxième méthode, nous avons utilisé le plugin de téléchargement simple de Jquery.

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!

source:tutorialspoint.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal