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 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
| <form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" enctype="multipart/form-data"> <fieldset> <legend>Transférez vos photos </legend>
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
Sélectionnez votre photo de l'avers :
<input type="file" name="avatar">
</p>
<p> Sélectionnez votre photo du revers <span class="Style2">.</span>:
<input type="file" name="av">
</p>
<p>
<input type="submit" name="ok" id="ok" value="Téléchargez les 2 photos " />
</p>
</fieldset>
</form>
<span class="Style7">
<?php if (isset($_FILES['avatar']['name'])) {
// traitement
$dossier = 'images/avers/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez télécharger un fichier de type jpg ...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
$time = date("YmdHis");
$S = substr(md5($fichier.$time),0,15);
$Nom = $S.".jpg";
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $Nom)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Téléchargement effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec du téléchargement !';
}
}
else
{
echo $erreur;
}
}
?>
</span>
<?php if (isset($_FILES['av']['name'])) {
// traitement
$dossier = 'images/avers/';
$fichier = basename($_FILES['av']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['av']['tmp_name']);
$extensions = array('.jpg', '.jpeg');
$extension = strrchr($_FILES['av']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez télécharger un fichier de type jpg ...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
$time = date("YmdHis");
$T = substr(md5($fichier.$time),0,15);
$Nom = $T.".jpg";
if(move_uploaded_file($_FILES['av']['tmp_name'], $dossier . $Nom)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo '';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec du téléchargement !';
}
}
else
{
echo $erreur;
}
}
// on défini le répertoire où seront stockées les miniatures
$mini = '../images/mini';
// on défini une variable $ratio qui vaudra 100 dans notre cas (100 pixels). En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels, soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).
$ratio = 100;
// on teste si le formulaire permettant d'uploader un fichier a été soumis
if (isset($_POST['ok'])) {
// on teste si le champ permettant de soumettre un fichier est vide ou non
if (empty($_FILES['avatar']['tmp_name'])) {
// si oui, on affiche un petit message d'erreur
}
else {
// on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier (je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations)
$tableau = @getimagesize($_FILES['avatar']['tmp_name']);
if ($tableau == FALSE) {
// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur
unlink($_FILES['avatar']['tmp_name']);
$erreur = 'Votre fichier n\'est pas une image.';
}
else {
// on teste le type de notre image : jpeg ou png
if ($tableau[2] == 2 || $tableau[2] == 3) {
// si on a déjà un fichier qui porte le même nom que le fichier que l'on tente d'uploader, on modifie le nom du fichier que l'on upload
if (is_file('../images/avers/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['avatar']['name'];
else $file_upload = $_FILES['avatar']['name'];
// on copie le fichier que l'on vient d'uploader dans le répertoire des images de grande taille
copy ($_FILES['avatar']['tmp_name'], $dossier.$file_upload);
// il nous reste maintenant à générer la miniature
// si notre image est de type jpeg
if ($tableau[2] == 2) {
// on crée une image à partir de notre grande image à l'aide de la librairie GD
$src = imagecreatefromjpeg($dossier.$file_upload);
// on teste si notre image est de type paysage ou portrait
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
// on copie notre fichier généré dans le répertoire des miniatures
imagejpeg ($im, $mini.'/'.$file_upload);
}
elseif ($tableau[2] == 3) {
$src = imagecreatefrompng($dossier.$file_upload);
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
imagepng ($im, $mini.'/'.$file_upload);
}
else {
// si notre image n'est pas de type jpeg ou png, on supprime le fichier uploadé et on affiche un petit message d'erreur
unlink($_FILES['avatar']['tmp_name']);
$erreur = 'Votre image est d\'un format non supporté.';
}
}
}
}
} |
Partager