J'ai de l'expérience avec les téléchargements de fichiers uniques en utilisant <input type="file">
. Cependant, j'ai du mal à en télécharger plus d'un à la fois.
Par exemple, j'aimerais pouvoir sélectionner une série d'images, puis les télécharger sur le serveur, toutes en même temps.
Ce serait bien d'utiliser un seul contrôle d'entrée de fichier, si possible.
Est ce que quelqu'un sait comment accomplir cela? Merci!
Réponses:
Ceci est possible en HTML5 . Exemple (PHP 5.4):
Voici à quoi cela ressemble dans Chrome après avoir sélectionné 2 éléments dans la boîte de dialogue de fichier:
Et voici à quoi cela ressemble après avoir cliqué sur le bouton "Télécharger".
Ceci est juste une esquisse d'une réponse pleinement fonctionnelle. Voir Manuel PHP: Gestion des téléchargements de fichiers pour plus d'informations sur la gestion correcte et sécurisée des téléchargements de fichiers en PHP.
la source
multiple="multiple"
?name="file[]"
). J'ai essayé de modifier la réponse , mais elle a été rejetée.Il y a quelques choses que vous devez faire pour créer un téléchargement de plusieurs fichiers, c'est assez basique en fait. Vous n'avez pas besoin d'utiliser Java, Ajax, Flash. Créez simplement un formulaire de téléchargement de fichiers normal en commençant par:
Puis la clé du succès;
<input type="file" name="file[]" multiple />
N'oubliez PAS ces parenthèses! Dans le post_upload.php, essayez ce qui suit:
Notez que vous obtenez un tableau avec des données tmp_name, ce qui signifie que vous pouvez accéder à chaque fichier avec une troisième paire de crochets avec l'exemple de fichier 'number':
Vous pouvez utiliser php count () pour compter le nombre de fichiers sélectionnés. Goodluck widdit!
la source
foreach
déclaration, sans avoir à connaître le nombre de fichiers téléchargés ...Solution complète dans Firefox 5:
la source
<html> <head> </head> <body> <form name="uploader" id="uploader" action="multifile.php" method="POST" enctype="multipart/form-data" > <input id="infile" name="infile[]" type="file" onBlur="submit();" multiple="true" ></input> </form>
Si vous souhaitez sélectionner plusieurs fichiers dans la boîte de dialogue du sélecteur de fichiers qui s'affiche lorsque vous sélectionnez Parcourir, vous n'avez généralement pas de chance. Vous devrez utiliser une applet Java ou quelque chose de similaire (je pense qu'il y en a un qui utilise un petit fichier flash, je le mettrai à jour si je le trouve). Actuellement, une seule entrée de fichier ne permet la sélection que d'un seul fichier.
Si vous parlez d'utiliser plusieurs entrées de fichier, il ne devrait pas y avoir beaucoup de différence par rapport à l'utilisation d'une seule. Postez du code et j'essaierai de vous aider davantage.
Mise à jour: il existe une méthode pour utiliser un seul bouton «parcourir» qui utilise flash. Je ne l'ai jamais utilisé personnellement mais j'en ai lu pas mal. Je pense que c'est votre meilleur coup.
http://swfupload.org/
la source
dans le premier, vous devez créer une forme comme celle-ci:
c'est vrai . ajoutez maintenant ce code sous votre code de formulaire ou sur la page de votre choix
c'est facile ... finir
la source
Si vous utilisez plusieurs champs de saisie, vous pouvez définir name = "file []" (ou tout autre nom). Cela les mettra dans un tableau lorsque vous les téléchargez (
$_FILES['file'] = array ({file_array},{file_array]..)
)la source
Utilisation de la boucle FOR
Utilisation de la boucle FOREACH
la source
J'ai créé une fonction php qui est utilisée pour télécharger plusieurs images, cette fonction peut télécharger plusieurs images dans un dossier spécifique ainsi qu'elle peut enregistrer les enregistrements dans la base de données dans le code suivant $ arrayimage est le tableau d'images qui est envoyé via la note de formulaire qu'il n'autorisera pas le téléchargement à utiliser plusieurs mais vous devez créer un champ de saisie différent avec le même nom, car vous pouvez définir le champ d'ajout dynamique du fichier unput en cliquant sur le bouton.
$ dir est le répertoire dans lequel vous souhaitez enregistrer l'image $ fields est le nom du champ que vous souhaitez stocker dans la base de données
Le champ de base de données doit être dans un exemple de format de tableau si vous avez une image de base de données et un nom de champs comme id, nom, adresse, vous devez publier des données telles que
puis passez ce champ dans la fonction $ fields
$ table est le nom de la table dans laquelle vous souhaitez stocker les données.
// La classe imageFunctions se termine ici
vous pouvez essayer ce code pour insérer plusieurs images avec son extension cette fonction est créée pour vérifier les fichiers image vous pouvez remplacer la liste des extensions pour les fichiers concernés dans le code
la source
réponse partielle: poire HTTP_UPLOAD peut être utile http://pear.php.net/manual/en/package.http.http-upload.examples.php
il y a un exemple complet pour plusieurs fichiers
la source