IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] Upload de photo : c'est une autre qui s'enregistre


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de dream_of_australia
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 167
    Par défaut [Upload] Upload de photo : c'est une autre qui s'enregistre
    Bonjour tout le monde,

    Alors voilà j'ai un formulaire qui me permet d'ajouter ou de supprimer une photo du serveur.

    Seulement lorsque je supprime une photo et que je veux en uploader une autre, au lieu de prendre le fichier sur mon ordi il prend l'ancienne photo (qui pourtant n'apparaît plus sur le serveur après la suppression !!).

    Mon code de suppression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST["supprimer"]) && !empty($_POST["supprimer"])) {
    	$id = $_POST["idphoto1"] ;
    	$chemin = "../photos/".$id."_1.jpg" ;
    	unlink($chemin) ;
    }
    Mon code d'upload (un peu long car je compresse l'image) :
    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
    if (isset($_POST["envoyer"]) && !empty($_POST["envoyer"])) {
    	$id = $_POST["idphoto2"] ;
    	if(!empty($_FILES["fichier"]["name"])) {
    		$nomFichier    = $_FILES["fichier"]["name"] ;
    		$nomTemporaire = $_FILES["fichier"]["tmp_name"] ;
    		$typeFichier   = $_FILES["fichier"]["type"] ;
    		$poidsFichier  = $_FILES["fichier"]["size"] ;
    		$codeErreur    = $_FILES["fichier"]["error"] ;
    		$chemin = "../photos/".$id."_" ;
    		$photoannonce = $chemin . "1.jpg" ;
    		if(copy($nomTemporaire, $chemin.$nomFichier)) {
    			$url_img=$chemin.$nomFichier;
    			list($imx, $imy, $type, $attr) = getimagesize($url_img);
    			$ims=imagecreatefromjpeg ($url_img); 
    			$ratiox=$imx/1024; 
    			$ratioy=$imy/768;
    			if($ratioy>$ratiox) {
    				$imd=imagecreatetruecolor (($imx/$ratioy),($imy/$ratioy));
    				imagecopyresampled ($imd,$ims,0,0,0,0, ($imx/$ratioy),($imy/$ratioy),$imx,$imy);
    			}
    			else { 
    				$imd=imagecreatetruecolor (($imx/$ratiox),($imy/$ratiox));
    				imagecopyresampled ($imd,$ims,0,0,0,0, ($imx/$ratiox),($imy/$ratiox),$imx,$imy);
       			} 
    			imagejpeg($imd,$photoannonce,80);
    			imagedestroy($ims);
    			imagedestroy($imd);
    			unlink($url_img);
    		}
    	}
    }
    Quelques précisions :
    _ la photo uploadée s'enregistre sous le nom id_1.jpg
    _ le problème n'apparaît qu'avec certains ids (et pourtant lorsque je parcours le dossier dans le serveur je ne vois aucun souci)
    _ le script de compression ne vient pas de moi mais je suis obligée de l'utiliser (c'est mon patron qui veut...)

    Est-ce que quelqu'un aurait une idée ? S'agirait-il par exemple d'un problème de mémoire (les photos sont énormes, plusieurs megas...) ?

    Merci à ceux qui prendront le temps de me lire !!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    Tu fais une copie de l'image que tu upload du fichier temporaire vers ton fichier de travail.
    L'erreur viendrait peut être du fait qu'il n'arrive pas écraser l'image déjà existante dans le /tmp au moment de l'upload. Du coup tu utilise toujours la même image qui est dans /tmp

    Essaye:
    - soit de remplacer copy par move_uplaod_file
    - soit un unlink("/tmp/".$nomTemporaire);

    A part ça je ne vois ce qui merde, le reste à l'air bien.

  3. #3
    Membre confirmé Avatar de dream_of_australia
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 167
    Par défaut
    Merci metfan, je vais essayer ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Image dans une autre qui est plus grande
    Par programmeurdu37 dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 27/02/2014, 11h52
  2. Réponses: 2
    Dernier message: 23/02/2013, 12h36
  3. Supprimer une photo utilisé par une autre ressource
    Par jubourbon dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/01/2010, 14h20
  4. fonction dont le paramemetre est une autre fonction
    Par Wanaka dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/05/2008, 15h54
  5. Réponses: 4
    Dernier message: 01/07/2007, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo