Upload multiple: j'ai besoin de votre aide !

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour/Bonsoir

Ca fait des jours que je tourne en rond, donc je me tourne vers vous :)

Je veux faire un upload multiple d'images avec un seul input file et les afficher.

J'ai d'abord essayé en php avec des tutos différents mais soit j'arrive à uploader/afficher une seule image, soit j'en upload plusieurs mais je n'arrive à en afficher aucune !

J'ai donc cherché du côté Javascript même si je n'y connait rien du tout, encore moins que le php…

J'ai trouvé des scripts d'upload multiple avec selection de fichier et drag&dop qui font à peu près ce que je veux, mais je ne sais pas comment les modifier.

Je voudrai y ajouter plusieurs choses: - contrôler les extentions autorisées, - limiter le nombre de fichier à uploader, - et ajouter un bouton de supression sur chaque image.

Donc si quelqu'un pouvait me dire comment faire ou me donner un tuto complet (que je n'ai pas trouvé), ce serait vraiment super !

Merci pour votre aide :)

+0 -0

Je ne vais pas te donner toutes les clés du premier coup. Disons que je vais te donner des pistes, ou des bouts de code. Ça sera plus constructif pour toi, crois-moi.

Premièrement, le code HTML est le suivant:

1
2
3
<form method="post" action="upload.php" enctype="multipart/form-data">
  <input name="filesToUpload[]" id="filesToUpload" type="file" multiple="" />
</form>

En Javascript, tu peux ensuite récupérer la liste des fichiers.

1
var fichiers = document.getElementById('filesToUpload');

Il te suffit ensuite de parcourir ton tableau fichier. Je te laisse le soin de la recherche pour cette partie-ci.

Pour ce qui est du PHP, tu peux récupérer la liste des fichiers transférés par ce biais.

1
$_FILES['uploads']['filesToUpload']

Je pense que tu as toutes les clés. Bonne chance.

+0 -0
Auteur du sujet

Bonsoir,

Désolée je n'ai pas vraiment eu le temps de m'y remettre mais merci pour vos réponses.

J'ai bien trouvé tout un tas d'outils me permettant de faire tout ça sans écrire une seule ligne de code mais ça ne m'intéresse pas. Je veux un truc simple sans multiples scripts JS auxquels je ne comprends rien…

Du coup j'ai repensé à ce que je voulais faire au départ, c'est à dire un upload multiple en php (le drag & drop était juste un bonus trouvé avec le JS) et sans JS si possible.

J'ai déjà assez de mal avec le php, pas besoin de me rajouter un nouveau langage à apprendre !

Donc ce que je cherche, c'est comment afficher plusieurs images issues d'un dossier temporaire. J'ai bien essayé de faire une boucle mais ça ne fonctionne pas…

En fait c'est là que je bloque. Je précise aussi que je ne cherche pas à enregistrer les images sur ma BDD à ce moment là, ça viendra dans un 2e temps.

Merci

+0 -0
Auteur du sujet

Bonjour,

J'ai réussi à limiter le nombre d'up à 5 dans php.ini et dans le cas où on up plus de 5 photos, les autres sont ignorées donc de ce côté là c'est bon.

Pour $_FILES, je sais ce que me retourne le tableau:

1
2
3
4
5
6
7
8
9
$_FILES['files']['name'],

$_FILES['files']['type'], 

$_FILES['files']['tmp_name'], 

$_FILES['files']['error'] et 

$_FILES['files']['size']

Ce que je n'arrive pas à faire, c'est afficher $_FILES['files']['tmp_name'] en tant qu'image, seul le texte alternatif s'affiche.

Edit: Il faudrait peut être que je précise que j'ai une variable count qui s'occupe de savoir combien de fichiers ont été uploadé. La difficulté vient peut être de là?

Édité par clenake

+0 -0
Auteur du sujet

J'ai fini par le savoir ça ! Les photos up sont placées dans un dossier uploads temporaire et je n'ai pas besoin de l'enregistrer ou que ce soit à ce moment là.

Mais j'ai peut être pas été assez clair dès le départ.

Mon form d'upload est lui même dans un formulaire global (sous forme de modale) qui sera enregistré sur BDD par la suite, ce que je veux c'est avoir un genre de prévisualisation des photos up DANS mon formulaire d'upload avant d'envoyer le formulaire global.

J'ai réussi à le faire tant que je n'avais qu'une seule image et donc un seul input file (en simulant une session pour l'affichage), mais avec l'input multiple, plus moyen d'afficher ne serait-ce qu'une seule image !

C'est pour ça que je m'était tournée vers du JS tout fait qui me permettait d'afficher tout mais sans avoir le contrôle du nombre et surtout sans rien y comprendre !

Je finis, malgès toutes mes recherches, par me demander si c'est vraiment possible ou non en php?

Parce que je ne comprends pas pourquoi on pourrait afficher une seule image issue d'un dossier temporaire et pas plusieurs…

Ca m'agace parce que j'ai bien galéré, j'ai fini par trouvé ce qu'il me faut au milieu de tous les trucs "sans queue ni tête" qu'on peut voir sur le net et pas moyen de finir.

A ce rythme là, j'aurai peut être fini mon projet dans 10 ans :lol:

Édité par clenake

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte