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 sur serveur apache


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    	
    <?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]
    règle numéro 12 : toujours s'offrir une entrée charismatique !

  2. #2
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    Salut,
    Avant d'aller plus loin,
    Tu as une erreur à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<br>".URLPhoto." ; ".$Tmp." ; ."$NomDest;
    A quoi correspond URLPhoto ? (à $UrlPhoto ?)

    ++
    ShinJava

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    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.
    règle numéro 12 : toujours s'offrir une entrée charismatique !

  4. #4
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    enctype="multipart/formdata">
    j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enctype="multipart/form-data">
    Et tout fonctionne.
    Voila voila

    ++
    ShinJava

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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?
    règle numéro 12 : toujours s'offrir une entrée charismatique !

  6. #6
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    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 :
    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

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $_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!
    règle numéro 12 : toujours s'offrir une entrée charismatique !

  8. #8
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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"]
    La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.

  9. #9
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    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

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $NomDest="photos/".$UrlPhoto;
    ce qui avec ton code donne cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NomDest = $_SERVER["DOCUMENT_ROOT"]."/photos/".$UrlPhoto;
    je vais essayé de chnger le nom de variable et voir ce qu'il ce passe
    [EDIT]
    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
    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!!
    règle numéro 12 : toujours s'offrir une entrée charismatique !

  11. #11
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    Ca m'a fait plaisir d'avoir pu t'aider

    Bon courage pour la suite.

    ++
    ShinJava

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

Discussions similaires

  1. [PHP5.x] Uploader fichier sur serveur distant
    Par Tyra3l dans le forum Langage
    Réponses: 6
    Dernier message: 30/03/2012, 08h31
  2. problème upload fichier sur serveur web
    Par gamiel dans le forum Langage
    Réponses: 3
    Dernier message: 26/03/2012, 00h27
  3. [PHP 5.3] Upload images sur serveur web
    Par perles dans le forum Langage
    Réponses: 2
    Dernier message: 13/11/2009, 17h06
  4. Upload fichier sur serveur
    Par SamusPlusPlus dans le forum Débuter
    Réponses: 5
    Dernier message: 24/03/2009, 08h28
  5. [Upload] uploader image sur serveur
    Par dedel53 dans le forum Langage
    Réponses: 14
    Dernier message: 07/03/2007, 15h23

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