Page 1 sur 2

formulaire upload fichier

Posté : 15 mai 2012, 22:38
par ccox78
Bonjour,

Je voudrais créer un formulaire permettant d'uploader des fichiers, jusque là, je m'en sort. Mais je voudrais ensuite que les fichiers uploadés soient visibles en dessous du formulaire d'upload et là je sèche.

Voici mon formulaire:
<form method="post" action="page.php" enctype="multipart/form-data">

<input type="file" name="nom_du_fichier" />
<input type="submit" name="submit" value="Envoyer" />

</form>
Quel code utiliser pour mes fichiers apparaissent sur la même page ?

Merci d'avance,
Ccox78

Re: formulaire upload fichier

Posté : 15 mai 2012, 23:20
par AB
Et bien tu les fait afficher comme tu ferais afficher une image normale. Vu que tu connais le nom de l'image et le nom du dossier, ce ne devrait pas être compliqué de générer le code html correspondant.

Re: formulaire upload fichier

Posté : 15 mai 2012, 23:25
par ccox78
Je me suis mal exprimée. Je ne veux pas afficher le fichier en lui même mais un lien pour le télécharger.
En clair c'est pour permettre de mettre nos cours en ligne. Donc X met un cours et Y peut le télécharger.

Re: formulaire upload fichier

Posté : 16 mai 2012, 01:51
par sam12
Je ne vois pas le problème. Si tu as le dossier et le nom du fichier, il suffit simplement de faire un lien vers le fichier (à place d'1 img src) donc 1 a href.

Re: formulaire upload fichier

Posté : 16 mai 2012, 11:47
par ccox78
Je ne connais pas le nom du fichier puisque tout le monde met ce qu'il veut. Et les fichiers doivent s'afficher les uns à la suite des autres. Fichier1 ne doit pas être écrasé par fichier2.
La solution est peut être toute simple mais je ne la trouve pas...

Re: formulaire upload fichier

Posté : 16 mai 2012, 12:18
par sam12
Normalement, il est conseillé de changer le nom du fichier. Sinon tu peux le récupérer par $_FILES['lenomdufichier']['name'].
Pour qu'il ne soit pas écrasé, il va falloir vérifier l'existence du nom du fichier dans le dossier. S'il existe => on génère un autre nom sinon tout est bon.

Re: formulaire upload fichier

Posté : 16 mai 2012, 14:58
par piotrowski-s
le lien serait probablement de la forme
<a href="tonrepertoire/<?php echo $_POST['nom_du_fichier'] ; ?>" />
a adapter avec ton répertoire

Re: formulaire upload fichier

Posté : 16 mai 2012, 17:21
par AB
Oui en fait cela te fait deux pages distinctes et donc deux scripts distincts.

Une page qui permet de télécharger les fichiers vers le serveur pour ceux qui déposent leurs cours.
Une page qui permet de télécharger les fichiers depuis le serveur pour ceux qui veulent prendre un cours dans la liste proposée.

Pour la première étape tu as un tuto ici

Pour la seconde tu peux utiliser simplement des liens comme mentionner plus haut. Ces liens listeront par exemple un répertoire avec par exemple la fonction "glob" ou "DirectoryIterator" ou encore "FilesystemIterator". Ensuite tu peux aussi forcer le téléchargement mais c'est une option pas toujours utile.

Re: formulaire upload fichier

Posté : 17 mai 2012, 00:03
par ccox78
Bonsoir,
Merci pour vos réponses. Je vais regarder ça et essayer de faire quelque chose. Je reviens vers vous si je ne m'en sors pas.

Bonne soirée/nuit

Re: formulaire upload fichier

Posté : 17 mai 2012, 01:45
par ccox78
Bon, j'ai réussi la première page, même si j'ai un soucis avec les accents que je ne comprends pas puisque je suis en utf-8 :?

Je bloque sur la deuxième page, je n'arrive toujours pas à récupérer les fichiers envoyés. J'ai vérifié, les fichiers s'envoient bien mais je n'arrive pas à faire le code qui me permettrait de les récupérer... et je ne connais pas les fonctions que vous m'avez proposé, je n'arrive pas à les utiliser.

Re: formulaire upload fichier

Posté : 17 mai 2012, 10:37
par ccox78
Bonjour,

Est-ce que je pourrai avoir un peu plus d'explication sur la page de téléchargement des cours SVP

Re: formulaire upload fichier

Posté : 17 mai 2012, 15:57
par ccox78
Désolée d'insister mais je n'y arrive vraiment pas.

Re: formulaire upload fichier

Posté : 17 mai 2012, 17:06
par AB
Regarde par exemple la fonction glob.
<?php
$repertoire = 'PHOTO/';
$tableau_fichiers = glob($repertoire."*.jpg");

foreach ($tableau_fichiers as $filename) {
    echo '<a href="'.$filename.'">'.basename($filename).'</a><br>';
}
?>
Ce script va lister tous les fichiers du répertoire "PHOTO" (s'il se situe au même niveau que le script dans le dossier du site) ayant l'extension 'jpg' et en créant un lien vers les fichiers. Pour retourner tous les fichiers sans sélection sur l'extension, il te suffirait d'écrire : $tableau_fichiers = glob($repertoire."*.*");

Re: formulaire upload fichier

Posté : 17 mai 2012, 17:33
par ccox78
Merci pour l'explication. Je comprends l'utilisation de glob.
Donc j'ai modifié avec mes infos ce qui me donne:

<?php
$repertoire = 'insta/';
$tableau_fichiers = glob($repertoire."*.*");

foreach ($tableau_fichiers as $filename) {
echo '<a href="'.$filename.'">'.basename($filename).'</a><br>';
}
?>

que j'ai mis dans le fichier telechargement.php

Pourtant, quand je vais sur cette page, il n'y a rien... et mes fichiers ont bien été envoyés.

Re: formulaire upload fichier

Posté : 17 mai 2012, 17:50
par AB
Tel que c'est écris il faut que le dossier 'insta' soit au même niveau (dans l'arborescence des dossiers de ton site) que le script 'telechargement.php'.
Vérifies le contenu de 'insta' sur le serveur d'évaluation ou sur le serveur distant.