Upload/Download PHP

[Résolu/Fermé]
Signaler
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
-
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
-
Bonjour à tous,
Je mets en place un petit espace d'échange de fichier sur un site, tout fonctionne mais j'ai juste un petit soucis que je n'arrive pas à contourner.
Lors du téléchargement du fichier, je me retrouve avec le nom du répertoire ou est stocké le fichier sur le serveur (upload) en préfixe de son nom d'origine ce qui me déplait fortement.
voici mon html
<form method="post" action="telechargement.php">
<select name="listeDir">

<?php
$rep ='upload/';
if (!is_dir ($rep)) {
    echo 'Erreur, ', $dir,' n\'est pas un repertoire valide';
    exit;
}
$dir = opendir ($rep);
        while (false !== ($fichier = readdir ($dir))) {
            if ($fichier !== '..' && $fichier !== '.') {
                echo '<option value="',$fichier,'">',$fichier,'</option>';
            }
        }
?>

</select>
<form method="post" action="telechargement.php">
<input type="submit" name="telecharger" value="telecharger le fichier" />
<input type="submit" name="supprimer" value="supprimer le fichier" onclick="if(window.confirm('Voulez-vous vraiment supprimer le fichier?')){return true;}else{return false;}"/>


</form>


et mon php

<?php
$file = 'upload/'.$_POST['listeDir'];
if (isset($_POST['telecharger'])) {
if (file_exists($file)) {
echo "Le fichier $file existe.";
} else {
echo "Le fichier $file n'existe pas.";
}
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$file);
readfile($file);
}
elseif  (isset($_POST['supprimer'])) {

  @unlink( $file ) ;
}

?>


Voilà, à votre bon cœur les amis pour me débarrasser de çà.

1 réponse

Messages postés
33693
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 octobre 2021
3 762
Bonjour



header('Content-Disposition: attachment; filename='.$file);
readfile($file);

Dans la première ligne tu dois mettre le nom du fichier uniquement..
Dans la seconde... Son chemin avec son nom.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019

Réponse aussi rapide qu'efficace, çà marche
Merci à toi
J'ai un autre soucis au niveau de la vérification si le fichier existe déjà avant l'upload mais je ferais un autre post
Merci encore