upload images

Répondre
lululala
le 21/01/2010 à 12:48
lululala
Comme prévus me revoilà avec une autre question et encore merci de m’avoir aider sur mon problème pour lister les images.
Donc voila j’ai un script pour l’upload de fichier qui marche pas trop mal mai qui lorsque 2image on le même nom il supprime l’ancienne par exemple si dans mon dossier il y a une photo ‘ poisson.jpg ‘ et que upload une autre photo différente mais s’appelant aussi poisson.jpg l’autre est supprimer au profit de la nouvelle

Je sait qu’il existe un moyen de renommer un doublon pour que le 2em poisson.jpg soit renommer par ex poisson2.jpg pouvez vous m’aidez car je ne trouve pas.
Voici les code d’ up MERCI!
upload html
<form method="POST" action="upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>

upload.php
<?php
$dossier = 'C:\wamp\www\formulaire\uploads /';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg','.txt','.doc ','.pdf');
$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 uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
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);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
lululala
le 21/01/2010 à 17:49
lululala
merci encore dit moi si il faut mètre le lien de mon dossier de réception partout ou il y a './images_up/'dans ton script ou autre par merci!!
moogli
le 21/01/2010 à 17:59
moogli
c'est écrit en français dans le texte :s
Le fichier final sera copié dans le répertoire images_up qui se trouve à la racine du fichier de traitement du formulaire d'upload.

Ma réponse est donc oui ;)

@+
Il en faut peu pour être heureux !!!!!
lululala
le 21/01/2010 à 18:59
lululala
alors ca marche bien mais j'ai essayer de certaines chose pour uploader des .jpg et des images plus lourde mai ca ne va plus
1. Votre image a été rejetée (poids, taille ou type incorrect)
formulaire.html
<form name="formu" action="traitement.php" method="post" enctype="multipart/form-data">
<input type="file" name="fichier" accept="image/jpg" /><br/>
<input type="submit" value="Go !!!!" />

traitement.php
<?php
if (isset($_FILES['fichier']))
{
//$_FILES existe on récupère les infos qui nous intéressent
$fichier=$_FILES['fichier']['name'];//nom réel de l'image
$size=$_FILES['fichier']['size']; //poids de l'image en octets
$tmp=$_FILES['fichier']['tmp_name'];//nom temporaire de l'image (sur le serveur)
$type=$_FILES['fichier']['type'];//type de l'image
//On récupère la taille de l'image
list($width,$height)=getimagesize($tmp);
if (is_uploaded_file($tmp)) //permet de vérifier si le fichier a été uplodé via http
{
//vérification du type de l'img, son poids et sa taille
if ($type=="image/jpg" && $size<=511296 && $width<=10000 && $height<=10000 )
{
// type mime gif, poids < à 20500 octets soit environ 20Ko, largeur = hauteur = 100px
//Pour supprimer les espaces dans les noms de fichiers car celà entraîne une erreur lorsque vous voulez l'afficher
$fichier = preg_replace ("` `i","",$fichier);//ligne facultative :)
//On vérifie s'il existe une image qui a le même nom dans le répertoire
if (file_exists('./images_up/'.$fichier))
{
//Le fichier existe on rajoute dans son nom le timestamp du moment pour le différencier de la première (comme cela on est sûr de ne pas avoir 2 images avec le même nom :) )
}
else {
$nom_final=$fichier; //l'image n'existe pas on garde le même nom
}
//on déplace l'image dans le répertoire final
move_uploaded_file($tmp,'./images_up/'.$nom_final);
//Message indiquant que tout s'est bien passé
echo "L'image a été uploadée avec succès<br/>";
}
else {
//Le type mime, ou la taille ou le poids est incorrect
echo 'Votre image a été rejetée (poids, taille ou type incorrect)';
}
}
}
//Pour tester si l'image est bien à sa place
echo '<img src="./images_up/'.$nom_final.'" border="0" />';
echo '<br/>';
echo '<a href="javascript:history.back();">Retour</a>';
?>

tu va surement te marrersmiley
moogli
le 22/01/2010 à 09:15
moogli
c'est le if ligne 14 qui te dit que ça ne va pas.

Soit l'image n'est pas du bon type (autre que jpg) soit la hauteur / largeur n'est pas bonne, soit le poids de l'image est trop élevé (poids en ko) attention par défaut php limite à 2Mo la tailles des fichiers.

@+
Il en faut peu pour être heureux !!!!!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours