Upload/Download PHP

Résolu/Fermé
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019 - 26 janv. 2018 à 08:08
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019 - 26 janv. 2018 à 11:56
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 çà.

A voir également:

1 réponse

jordane45 Messages postés 38358 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 décembre 2024 4 719
26 janv. 2018 à 08:11
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
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
26 janv. 2018 à 11:56
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
0