Bonjour,

Je me permet de vous contactez car j'ai un soucis, je possède un serveur web et je voudrais faire l'upload et le download de fichier sur celui ci. Pour l'upload pas de problème je gère mais concernant le download je ne vois pas quel solution appliqué et ni comment faire, et après avoir parcouru ce forum et les tutos ce n'ais pas plu claire dans ma tete, je sais qu'il faut utilisé header et readfile.

En gros j'aurai voulu téléchargé un fichier image depuis mon serveur en cliquant sur un lien et en bonus si possible pouvoir envoyé ce lien par mail par exemple(mais bon ca attendra)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>	
		<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
		<title>Upload d'image en PHP</title>
	</head>
	<body>

<?php
 */
function get_extension($nom) {
    $nom = explode(".", $nom);
    $nb = count($nom);
    return strtolower($nom[$nb-1]);
}


$extensions_ok = array('jpg', 'jpeg');

$typeimages_ok = array(2);

$taille_ko = 250000; // Taille en kilo octect (ko)
$taille_max = $taille_ko*250000; // En octects
$dest_dossier = 'img/'; // Creez ce dossier et chmoodez le !
print_r($_FILES['photo']);
    if(isset($_FILES['photo'])) // Formulaire envoyé
    {
        // Les erreurs que PHP renvoi
        if($_FILES['photo']['error'] !== "0") {
                switch ($_FILES['photo']['error']) {
                case 1:
                    $erreurs[] = "Votre image doit faire moins de $taille_ko Ko !";
                    break;
                case 2:
                    $erreurs[] = "Votre image doit faire moins de $taille_ko Ko !";
                    break;
                case 3:
                    $erreurs[] = "L'image n'a été que partiellement téléchargé.";
                    break;
                case 4:
                    $erreurs[] = "Aucun fichier n'a été téléchargé.";
                    break; 
                case 6:
                    $erreur[] = "Un dossier temporaire est manquant.";
                    break;
                case 7:
                    $erreurs[] = "Échec de l'écriture du fichier sur le disque.";
                    break;
            }
        }
                if(!$getimagesize = getimagesize($_FILES['photo']['tmp_name'])) {
            $erreurs[] = "Le fichier n'est pas une image valide.";
        }
        
        if( (!in_array( get_extension($_FILES['photo']['name']), $extensions_ok ))
           or (!in_array($getimagesize[2], $typeimages_ok )))
        {
            foreach($extensions_ok as $text) { $extensions_string .= $text.', '; }
            $erreurs[] = 'Veuillez sélectionner un fichier de type '.substr($extensions_string, 0, -2).' !';
        }
        
        if( file_exists($_FILES['photo']['tmp_name']) 
                  and filesize($_FILES['photo']['tmp_name']) > $taille_max)
        {
            $erreurs[] = "Votre fichier doit faire moins de $taille_ko Ko !";
        }

        
        if(!isset($erreurs) or empty($erreurs))
        {
            $dest_fichier = basename($_FILES['photo']['name']);
            $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝà áâãäåçèéêëìÃ*îïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
            
            $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
            
            
            while(file_exists($dest_dossier . $dest_fichier)) {
                $dest_fichier = rand().$dest_fichier;
            }
            
            
            if(move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier)) {
                $valid[] = "Image uploadé avec succés (<a href='".$dest_dossier . $dest_fichier."'>Voir</a>)";
            } else {
                $erreurs[] = "Impossible d'uploader le fichier.<br />Veuillez vérifier que le dossier ".$dest_dossier." existe avec un chmod 755 (ou 777).";
            }
        }
    }
?>
 
<form method="POST" action="" enctype="multipart/form-data">
<?php
if(!empty($erreurs)) {
    echo '<ul class="erreur">';
    foreach($erreurs as $erreur) {
        echo '<li>'.$erreur.'</li>';
    }
    echo '</ul>';
}
if(!empty($valid)) {
    echo '<ul class="validation">';
    foreach($valid as $text) {
        echo '<li>'.$text.'</li>';
    }
    echo '</ul>';
}
 
?>
    <fieldset>
    <legend>Envoi d'image</legend>
        <p>
            <label for="photo">Image : </label>
            <input type="file" name="photo" id="photo" />
        </p>
        <p>
            <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $taille_max; ?>" />
            <input type="submit" name="envoi" value="Envoyer l'image" />
        </p>
    </fieldset>
</form>
Et voici le second code pour la gestion des images ou j'aurai bien voulu inséré le lien de télechargement sous forme de liste comme pour la suppression.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
$adresse = "./img/"; //Adresse du dossier.
if(isset($_GET['nom'])) //Si $_GET['nom'] existe, on supprime le fichier...
{
     if ($Fichier != "." && $Fichier != "..") 
     {
          $nom=''.$adresse.$_GET['nom'].'';
          unlink($nom);
          echo 'Le fichier "'.$_GET['nom'].'" a été éffacé !<br>';
     }
} 
$dossier = opendir($adresse); //Ouverture du dossier. 
echo '<fieldset><legend>Liste des fichiers</legend><br>'; //Ouverture de fieldset 
while ($Fichier = readdir($dossier)) //Affichage...
{  
     if ($Fichier != "." && $Fichier != "..") 
     { 
          echo '<a href="gestionfich.php?nom='.$Fichier.'">Supprimer</a> => <a href='.$adresse.$Fichier.' target="_blank">'.$Fichier.'</a><BR>'; 
          echo '<a href="gestionfich.php?nom='.$Fichier.'">Telecharger</a> => <a href='.$adresse.$Fichier.' target="_blank">'.$Fichier.'</a><BR>';
     }
}
closedir($dossier); 
echo '<br></fieldset>'; 
?>
Je requiert votre aide car je suis completement perdu.