Page 1 sur 2

Problème d'upload sur WAMP

Posté : 06 mars 2007, 18:46
par Invité
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.

Posté : 06 mars 2007, 21:37
par Invité
Plizz help ! :(

Posté : 06 mars 2007, 21:51
par polo
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

Posté : 06 mars 2007, 21:58
par Invité
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 :?

Posté : 06 mars 2007, 22:06
par polo
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

Posté : 06 mars 2007, 22:13
par Invité
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

Posté : 06 mars 2007, 22:18
par polo
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

Posté : 06 mars 2007, 22:24
par Invité
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\ 

Posté : 06 mars 2007, 22:25
par Invité
ç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\ 

Posté : 06 mars 2007, 22:27
par Invité
mince les quote ici supprimment les antislash lol !

Posté : 06 mars 2007, 22:28
par Invité
bon en tout cas ça ne change rien au problème, j'aurais bien aimé que ce soir ça :?

Posté : 06 mars 2007, 23:06
par Tictac
tu dois pas mettre simplement $this->destination = "photos/";

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

Posté : 06 mars 2007, 23:30
par Invité
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 ?

Posté : 06 mars 2007, 23:33
par Tictac
fais un chmod("/photos",0777) avant l'upload

Posté : 06 mars 2007, 23:41
par Invité
Euh sous windows CHMOD 777 t'es sûr ??? :?