Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2007, 15h16   #1
Membre habitué
 
Inscription : mai 2006
Messages : 204
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 204
Points : 126
Points : 126
Par défaut [Upload] Upload sur serveur apache

dans le cadre de la création d'un site web, et de sa partie administration, je souhaite pouvoir envoyer des image sur le seveur, mais j'ai peur de pas bien avoir compris le code.

sur ma pagede création, une entrée
Code :
1
2
3
4
5
6
7
8
CODE EN HTML
<form name="CréationNews" action="Ad_CreationNews_Exec.php"  method="post" enctype="multipart/formdata">
<!-- ***********************************-->
       <input type="file" name="URLPhoto">
<!-- ***********************************-->
      <input type="Submit" value="Enregistrer" />
</form>
envoyer par la méthode post vers une page => exec, ou pour récupérer la photo et l'Uploader je fait

Code :
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
	
<?php   
	$UrlPhoto=$_FILES["URLPhoto"]["name"];
	echo "urlfoto : ".$URLPhoto;
//résultat ok
//urlfoto : 8O.gif

	$Tmp=$_FILES["URLPhoto"]["tmp_name"];
	echo "<br> TMP : ".$Tmp;
//résultat null
//TMP :

	$NomDest="photos/".$UrlPhoto;
	echo "<br> NomDest : ".$NomDest;
//résultat null
//NomDest : photos/

	echo "<br>".$URLPhoto." ; ".$Tmp." ; ".$NomDest;
//résultat null (normal me diré vous)
//8O.gif ; ; photos/

//Upload
	move_uploaded_file($Tmp, $NomDest);
//l'image n'est pas transmise 8O 
?>
je test mon site sur lycos, et je sais qu'ils ont actuellement un problème avec l'upload et le download (d'après un conseiller que j'ai eu ce matin) des technicien sont entrain de résoudre se pb, mais moi ce que j'aimerais savoir c'est si mon code est correct pour l'upload de l'image car je trouve bizard que certaine de mes variable soit null!!!
auriez-vous une explication?

[EDIT]
erreur de copie corriger
[/EDIT]
__________________
pas de demande d'aide par mp rester sur le topic il y aura plus de chance pour que vous ayez une réponse.
ben_skywalker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 15h26   #2
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Salut,
Avant d'aller plus loin,
Tu as une erreur à cette ligne:

Code :
echo "<br>".URLPhoto." ; ".$Tmp." ; ."$NomDest;
A quoi correspond URLPhoto ? (à $UrlPhoto ?)

++
ShinJava
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 15h36   #3
Membre habitué
 
Inscription : mai 2006
Messages : 204
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 204
Points : 126
Points : 126
oui UrlPhoto correspond bien à $UrlPhoto c'est une erreur minime (de copie ou d'innatention, vue que j'ai mit le résultat de l'echo en dessous et il est passer sur sa mais les deux autre variable ne passe pas je trouve sa bizard!

je corrige le pemier post sur ce type d'erreur.
__________________
pas de demande d'aide par mp rester sur le topic il y aura plus de chance pour que vous ayez une réponse.
ben_skywalker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 15h41   #4
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Hello,
J'ai essayé ton code,
Mais même urlphoto ne me donne rien.

Par contre j'ai procédé à la modif suivante :

A la place de :
Code :
enctype="multipart/formdata">
j'ai mis :
Code :
enctype="multipart/form-data">
Et tout fonctionne.
Voila voila

++
ShinJava
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 16h05   #5
Membre habitué
 
Inscription : mai 2006
Messages : 204
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 204
Points : 126
Points : 126
merci sa marche mieux, mais apperement chez lycos y a un toujours le soucie, l'Upload ne s'exécute pas, ou du moins l'image n'est pas envoyer!, ou a tu tester cela?

et au faite

Code :
$Tmp=$_FILES["URLPhoto"]["tmp_name"];
dans cette ligne là, a quoi correspond le tmp_name?
c suposer être le nom de mon répertoire temporaire ou alors c'est pour resevoir le nom de mon repertoire temporaire?
__________________
pas de demande d'aide par mp rester sur le topic il y aura plus de chance pour que vous ayez une réponse.
ben_skywalker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 16h45   #6
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Pour le test, je l'ai effectué en local sur ma machine.
Le tmp_name correspond tout simplement au nom temporaire du fichier qui est stocké sur le serveur.

Voici l'explication fourni par php.net :
Citation:
The temporary filename of the file in which the uploaded file was stored on the server
Sinon normalement tu n'as pas à créer un repertoire temporaire ou autres, il doit y en avoir un par défaut sur le serveur.

Voila voila,

++
ShinJava
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 16h51   #7
Membre habitué
 
Inscription : mai 2006
Messages : 204
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 204
Points : 126
Points : 126
je te remercie, j'essaye actuellement de rajouter un test sur les message d'erreur qui me sont re tourné, pour voir pourquoi le fichier n'est pas téléchargé!
Mais d'après :
Code :
$_FILES["URLPhoto"]["error"]
aucune erreur n'est retourné! donc si sa marche chez toi, le problème vient surement du faite que les techos de chez lycos n'ont pas encore résolut le problème!
__________________
pas de demande d'aide par mp rester sur le topic il y aura plus de chance pour que vous ayez une réponse.
ben_skywalker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 17h22   #8
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Hello,
Le truc c'est que je n'ai pas testé si l'upload fonctionner, je n'avais pas créer le bon repertoire. J'ai juste testé si tes test fonctionnaient.

Sinon en re-regardant ton code, tu as quelques soucis avec ta variable $UrlPhoto.
PHP est sensible à la casse.
Parfois, je vois $UrlPhoto et parfois $URLPhoto.
Il te faut uniformiser tout ça en premier lieu, je te conseil quelque chose comme $url_photo. Au moins, il se différencie de $_FILES['URLPhoto']. (je sais ca peut paraitre bizarre, mais une fois ma variable avait le même nom que ma session et j'ai eu beaucoup de problème).

Ensuite pour ta variable $NomDest, essaye plutot ça :
Code :
$NomDest = $_SERVER["DOCUMENT_ROOT"]."/photos/";
$_SERVER["DOCUMENT_ROOT"] est la racine du repertoire ton site sur le serveur. (y'a d'autres manière de procéder mais avec celle-là je n'ai jamais eu de problème)...

Voila voila,
Bon courage pour la suite.

++
ShinJava

PS : voila l'explication fourni par php.net pour $_SERVER["DOCUMENT_ROOT"]
Citation:
La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 17h30   #9
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
J'ai encore oublié une chose.
Il me semble que quand tu envoi un fichier, il te faut specifier le chemin + le nom du fichier dans le 2eme paramètre de move_uploaded_file().

Voila voila

++
ShinJava
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 18h06   #10
Membre habitué
 
Inscription : mai 2006
Messages : 204
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 204
Points : 126
Points : 126
Citation:
Envoyé par ShinJava
J'ai encore oublié une chose.
Il me semble que quand tu envoi un fichier, il te faut specifier le chemin + le nom du fichier dans le 2eme paramètre de move_uploaded_file().
oui d'où le "$UrlPhoto" concaténer à "photo/" :

Code :
$NomDest="photos/".$UrlPhoto;
ce qui avec ton code donne cela :
Code :
$NomDest = $_SERVER["DOCUMENT_ROOT"]."/photos/".$UrlPhoto;
je vais essayé de chnger le nom de variable et voir ce qu'il ce passe
[EDIT]
Code :
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
$Url_Photo=$_FILES["URLPhoto"]["name"];
		echo "urlfoto : ".$Url_Photo;
		$Tmp=$_FILES["URLPhoto"]["tmp_name"];
		echo "<br> TMP :".$Tmp;
		$NomDest = $_SERVER["DOCUMENT_ROOT"]."/photos/".$Url_Photo;
		echo "<br> NomDest : ".$NomDest;
		echo "<br>".$Url_Photo." ; ".$Tmp." ; ".$NomDest;
		move_uploaded_file($Tmp, $NomDest);
		if($Err=$_FILES["URLPhoto"]["error"])
		{
			echo "il y a eu une erreur";
			if ($Err==UPLOAD_ERR_INI_SIZE) 
			{
			    echo "le fichier est plus gros que le max autorizé par PHP";
			}
			elseif($Err==UPLOAD_ERR_FORM_SIZE)
			{
				echo "le fichier est plus gros qu'indiqué dans le formulaire";
			}
			elseif($Err==UPLOAD_ERR_PARTIAL)
			{
				echo "le fichier n'a été que partiellement téléchargé";
			}
			elseif($Err==UPLOAD_ERR_NO_FILE)
			{
				echo "le fichier n'a pas été téléchargé";
			}
		}
		//pour le test de l'Upload à supprimer ensuite
		else
		{
			echo "<br>UPLOAD";
		}
donc voilà à quoi ressemble mon code maintenant!

réponse des différent "echo" dans l'ordre :
urlfoto : .gif
TMP :/tmp/phprML94h
NomDest : /data/members/paid/t/e/testsitejc.com/htdocs/www/photos/.gif
.gif ; /tmp/phprML94h ; /data/members/paid/t/e/testsitejc.com/htdocs/www/photos/.gif
UPLOAD

et maintenant SA MARCHE vive ShinJava
merci plus qu'a appliquer aux autres page!!
__________________
pas de demande d'aide par mp rester sur le topic il y aura plus de chance pour que vous ayez une réponse.
ben_skywalker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 19h02   #11
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Ca m'a fait plaisir d'avoir pu t'aider

Bon courage pour la suite.

++
ShinJava
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h42.


 
 
 
 
Partenaires

Hébergement Web