Problème d'upload sur WAMP

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 18:46

Bonjour @ tous et @ toutes !

Je me sers avec grand bonheur de WAMP5 depuis quelques temps pour mes devellopements et là je suis confronté à un problème, pour uploader mes images dans un formulaires. Pour cela j'utilise le code suivant:
$this->chemin_original = "photos/";
$this->chemin_mini = "photos/mini/";
$this->destination = "C:/wamp/www/immopap/photos/";

$repertoireDestination = "$this->destination";
$nomDestination = $_FILES[$champ]["name"];

if(!file_exists($repertoireDestination.$nomDestination) && (eregi(".jpg", $nomDestination) || eregi(".jpeg", $nomDestination))){
if (is_uploaded_file($_FILES[$champ]["tmp_name"])) {
if (rename($nom_fichier,$repertoireDestination.$nomDestination)) {
//traitement
}
cela me renvoie l'erreur suivante:
Warning: rename(81.jpg,C:/wamp/www/mon_site/photos/KIF_0143.JPG) [function.rename]: No such file or directory in C:\wamp\www\immopap\classes\bien_immo.class.php on line 203
Le déplacement du fichier temporaire a échoué vérifiez l'existence du répertoire C:/wamp/www/immopap/photos/bool(true)
j'ai tout essayé, chemins relatifs, chemins absolus avec / , avec \ bref là je patauge et je m'énerve pour rien.
Comment feriez vous ? Merci d'avance à ceux qui prendront la peine de me lire et de me répondre.

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 21:37

Plizz help ! :(

Eléphant du PHP | 216 Messages

06 mars 2007, 21:51

Bonjour,
c'est très simple à la place de

Code : Tout sélectionner

C:/wamp/www/immopap/photos/
tu fais

Code : Tout sélectionner

C:\wamp\www\immopap\photos\
Et oui, car tu utilise le système de fichier de windows ^^ donc il faut utiliser l'antislash au lieu du slash ^^

Voila :D
Le PHP c'est bien, surtout quand ça marche ;) mon site
Hébergement gratuit et sans pub => Image

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 21:58

Salut merci pour ta réponse j'y avait bien pensé aussi mais voilà ce que ça donne :
Warning: rename(81.jpg,C:\wamp\www\immopap\photos\KIF_0146.JPG) [function.rename]: No such file or directory in C:\wamp\www\immopap\classes\bien_immo.class.php on line 203
Le déplacement du fichier temporaire a échoué vérifiez l'existence du répertoire C:\wamp\www\immopap\photos\
Et je peux t'assurer que ce répertoire existe bien, je deviens fou ce script je l'ai écrit y a un bout de temps et il fonctionnait, je pige plus rien j'en perds mon php :?

Eléphant du PHP | 216 Messages

06 mars 2007, 22:06

Et tu certain que wamp et bien à la racine de ton disk dur ?
de toute manière c'est très simple, tu va dans le dossier ou tu souhaite uploader, tu fais afficher la barre d'adresse, tu récupère l'adresse et tu la colle, comme ça tu sera certain de ne pas faire de faute, ainsi on ce concentra sur le script si jamais ça ne marche pas :D
Le PHP c'est bien, surtout quand ça marche ;) mon site
Hébergement gratuit et sans pub => Image

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 22:13

Oui c'est exactement ce que j'ai fait, voici mon script:
function upload_and_miniature($chemin_original, $chemin_mini, $nom_fichier, $champ){
	
		$repertoireDestination = "$this->destination";
	    $nomDestination        =  basename($_FILES[$champ]["name"]);
	    
	    echo $nomDestination."<br>"; //test
	    if (eregi(".jpg", $nomDestination) == 'FALSE'|| eregi(".jpeg", $nomDestination) == 'FALSE') { //interdiction d'autres formats que jpg
	        $nomDestination .= ".txt";
	    }
    	if(!file_exists($repertoireDestination.$nomDestination) && (eregi(".jpg", $nomDestination) || eregi(".jpeg", $nomDestination))){
		    echo 'test 1: '.$repertoireDestination.$nomDestination.'<br>';//test
    		if (is_uploaded_file($_FILES[$champ]["tmp_name"])) {
    			echo 'temp_name: '.$_FILES[$champ]["tmp_name"].'<br>';//test
		        if (rename($nom_fichier,$repertoireDestination.$nomDestination)) { //on renomme
		            /*echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
		                 " a été déplacé vers ".$repertoireDestination.$nomDestination;*/
					//redimensionnement de l'original
					$image_origine = imagecreatefromjpeg("$chemin_original/$nomDestination");
					$largeur_origine = imagesx($image_origine);
					$hauteur_origine = imagesy($image_origine);
					$hauteur_mini = $hauteur_origine * 100 /   $largeur_origine;
					$image_finale = imagecreate(100, $hauteur_mini);
					imagecopyresized($image_finale, $image_origine, 0, 0, 0, 0, 100, $hauteur_mini, imagesx($image_origine), imagesy($image_origine) );
					imagejpeg($image_finale, "$chemin_mini/$nomDestination");
					imagedestroy($image_finale);
					//création de la vignette
		            /*$image_origine = imagecreatefromjpeg("$chemin_original/$nomDestination");
					$largeur_origine = imagesx($image_origine);
					$hauteur_origine = imagesy($image_origine);*/
					$hauteur_mini = $hauteur_origine * 100 /   $largeur_origine;
					$image_finale = imagecreate(100, $hauteur_mini);
					imagecopyresized($image_finale, $image_origine, 0, 0, 0, 0, 100, $hauteur_mini, imagesx($image_origine), imagesy($image_origine) );
					imagejpeg($image_finale, "$chemin_mini/$nomDestination");
					imagedestroy($image_finale);
					
			
					return true;
		        } else {
		            echo "Le déplacement du fichier temporaire a échoué".
		                 " vérifiez l'existence du répertoire ".$repertoireDestination;
		       	}          
		    } else {
		       echo "Le fichier n'a pas été uploadé (trop gros ?)";
		    }
    	}else{
			echo "Un fichier porte déjà ce nom";
		}
	}
et je l'instacie avec ça:
function set_photo1(){
		$this->chemin_original = "photos/";
		$this->chemin_mini = "photos/mini/";
		$this->destination = "C:\\wamp\\www\\immopap\\photos\\";
		$this->id_table = "id_bien";
		$this->record = "photo1";
		$this->tbl = "tbl_biens";
		
		$this->upload_and_miniature($this->chemin_original,$this->chemin_mini,$this->id_bien.'1.jpg','photo1');

}
là je sèche :? Encore merci de ta participation :D

Eléphant du PHP | 216 Messages

06 mars 2007, 22:18

Heu............
pk ça:

Code : Tout sélectionner

C:\\wamp\\www\\immopap\\photos\\
et pas ça:

Code : Tout sélectionner

C:\wamp\www\immopap\photos\\
tu n'a besoin d'échapper qu'un seul antislash :D
Le PHP c'est bien, surtout quand ça marche ;) mon site
Hébergement gratuit et sans pub => Image

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 22:24

oui enfin le résultat est le même:
test 1: C:\wamp\www\immopap\photos\KIF_0146.JPG
temp_name: c:/wamp/tmp\php3F0.tmp

Warning: rename(81.jpg,C:\wamp\www\immopap\photos\KIF_0146.JPG) [function.rename]: No such file or directory in C:\wamp\www\immopap\classes\bien_immo.class.php on line 203
Le déplacement du fichier temporaire a échoué vérifiez l'existence du répertoire C:\wamp\www\immopap\photos\ 

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 22:25

ça donne ça:
test 1: C:\wamp\www\immopap\photos\KIF_0146.JPG
temp_name: c:/wamp/tmp\php3F0.tmp

Warning: rename(81.jpg,C:\wamp\www\immopap\photos\KIF_0146.JPG) [function.rename]: No such file or directory in C:\wamp\www\immopap\classes\bien_immo.class.php on line 203
Le déplacement du fichier temporaire a échoué vérifiez l'existence du répertoire C:\wamp\www\immopap\photos\ 

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 22:27

mince les quote ici supprimment les antislash lol !

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 22:28

bon en tout cas ça ne change rien au problème, j'aurais bien aimé que ce soir ça :?

Eléphant du PHP | 353 Messages

06 mars 2007, 23:06

tu dois pas mettre simplement $this->destination = "photos/";

c'est ok , bien ce que tu veux faire ?

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 23:30

Bonjour, j'en perds mon latin, je ne sais plus si il faut indiquer un chemin réel ou absolu, tout ce que je veux c'est uploader dans un répertoire "photos" qui se trouve physiquement à "C:\wamp\www\mon_site\photos\" voilà mais j'ai l'impression que ça doit être un problème de droits, car j'ai essayé avec move_uploaded_file et ça m'a mis "permission denied" sachant que je suis sous wamp qu'en pensez vous ?

Eléphant du PHP | 353 Messages

06 mars 2007, 23:33

fais un chmod("/photos",0777) avant l'upload

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 23:41

Euh sous windows CHMOD 777 t'es sûr ??? :?