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

JavaScript Discussion :

Problème $_FILES


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut Problème $_FILES
    Voilà depuis une page j'execute du javascirpt qui envois les infos à une page php.

    Le problème c'est que le fichier ce crée mais il est vide.

    Alors un peu d'aide est la bienvenue....

    Merci d'avance

    le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo '<form method="post" enctype="multipart/form-data">'; 
    echo '<input type="file" name="photo">'; 
    echo ' <input type="button" name="Submit2" onclick="photos(1)" value="Envoyer">'; 
    echo '</form>';
    la fonction javascript
    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
     
    function photos(page) {
      var photo = document.getElementById("photo").value;
      var tmp="file="+photo;
     
    /* on spécifie la méthode, l’URL et le type de transmission  */
        requete.open("POST","admin/scripts/photos.php",true);  
     
             requete.onreadystatechange = function()
     	{
    		/* si on a recu la reponse */
    		if(requete.readyState == 4)
     		{  
    			/* on recoit les données et on les affichent*/
     
    			alert(requete.responseText);
    			mapage(page);
     
    		}
    	}
     
     
    	/* on précise l'encodage en spécifiant l'en-tête adéquat */
    	requete.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	requete.setRequestHeader("choix", "test");
    	/* on execute la requete en transmettant les données */
     
    	requete.send(tmp);  
      }
    le fichier qui upload
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    /*Nom du fichier uploadé sur le serveur*/ 
    $file_name="fichier.jpg"; 
    $login ='mon_login';
    $password = 'mon_passe';
    /*Nom du fichier uploadé sur le serveur*/ 
    $file_name="fichier.jpg"; 
    $login ='alexmorel';
    $password = 'freesurf';
    //$_POST['file']; si je le met le fichier ne se crée pas sur le serveur
    $file = $_FILES['file']['name'];  //cree un fichier vide
     
    if($file_name != "") 
    { 
    /* Connexion au serveur */ 
    $conn_id = ftp_connect("mon_ftp.com"); 
    $login_result = ftp_login($conn_id, $login, $password); 
    if ($login_result) 
    { 
       echo ("Connexion reussi \n"); 
    } 
     
    /*Endroit ou le fichier sera uploadé sur le serveur*/ 
    $cfg_upload_path = "images/magasin"; 
    if(!is_writeable($cfg_upload_path)) 
    { 
     
       echo("Le repertoire n'est pas accessible en ecriture.\n"); 
    } 
    /*le up en question*/ 
    $upload=ftp_put($conn_id, $cfg_upload_path."/".$file_name, $file, FTP_BINARY); 
    if (!$upload) 
    { 
     
    	echo "Le telechargement FTP a echoue!"; 
    } 
    else 
    { 
       echo "Telechargement ftp reussit "; 
    } 
    ftp_close($conn_id); 
    }
    A.Morel

  2. #2
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut Re: Problème $_FILES
    Citation Envoyé par alexmorel
    Le problème c'est que le fichier ce crée mais il est vide.
    Donc tes fonctions javascript fonctionnes...alors sa peut provenir de ton formulaire...est ce qu'il faut que tu le submit... c'est p-e
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /* on spécifie la méthode, l’URL et le type de transmission  */ 
        requete.open("POST","admin/scripts/photos.php",true);
    qui cause le probleme
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  3. #3
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut
    le but est de passer par mon fichier javascript jusque là tout fonctionne.

    si je regarde ce que contient
    J'ai bien l'adresse de mon fichier (ex. c:\image.jpg)

    le problème vient que la fonction ftp de php attend un type
    mais si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_FILES['file'][name] = $_POST['file']
    mais là il ne crée plus le fichier vide sur le serveur alors que le $_FILES contient bien le lien vers mon image dans name


    Je vois pas ou c'est faux

    Aidez moi
    A.Morel

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Salut,

    Si je comprend bien ton script tu voudrais uploader une image sur le serveur, puis la copier en ftp vers un autre serveur ?

    Sa me parait un peu torturé ce que tu veux faire :s

    Ceci dit, si j'ai correctement compris ce que tu veux faire, il faut tout d'abord que tu ups l'image via ton form avec le multipart.
    Deuxiemement, tu fais un move_uploaded_file ( je croit que c'est le nom de la fonction).
    Troisiemement, tu ouvres une connexion ftp en php, et tu indiques en source le fichier indiqué après le move_uploaded_file().

    Bon en mm tps j'ai peut etre rien compris... faut dire qu'à partir de

    requete.open("POST","admin/scripts/photos.php",true);

    Je suis à la rue :/

    au cas ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    				if( isset($_FILES["_FILETOIMPORT_"]['tmp_name']) )
    				{
    					move_uploaded_file($_FILES["_FILETOIMPORT_"]['tmp_name'] , "upload/".$_FILES["_FILETOIMPORT_"]["name"]);
    					return "upload/".$_FILES["_FILETOIMPORT_"]["name"];
    				}
    _FILETOIMPORT_ est à remplacer par le nom de ton champs file de ton form.
    Bye

  5. #5
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut
    non je veux juste uploader une image sur mon site depuis une page de celui ci.
    A.Morel

  6. #6
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Vraisemblablement tu mélanges HTML et FTP et tu ne peux pas utiliser les deux.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  7. #7
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut
    le html me sert juste pour les composant du formulaire
    et le php pour le ftp
    A.Morel

  8. #8
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Regarde déjà dans la et pars d'un script qui fonctionne afin de contrôler que le fichier est bien transmis via HTML sur ton serveur
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  9. #9
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut
    Pour simplifier
    j'ai supprimer le javascript dans mes page

    page formulaire.php


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     <?  
    	   echo '<br>';
    	   echo '<form method="post" enctype="multipart/form-data" action="photos.php">'; 
           echo '<INPUT NAME="userfile" TYPE="file">'; 
    	   echo ' <input type="submit" name="Submit2"  value="Envoyer">'; 
    	   echo '</form>';    
    ?>
    le fichier photos.php
    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
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php 
    /*Nom du fichier uploadé sur le serveur*/ 
    $file_name="fichier.jpg"; 
    $login ='mon_login';
    $password = 'mon_passe';
     
     
    $file = $_FILES['userfile']['name'];
     
    if($file_name != "") 
    { 
    /* Connexion au serveur */ 
    $conn_id = ftp_connect("mon_serveur.com"); 
    $login_result = ftp_login($conn_id, $login, $password); 
    if ($login_result) 
    { 
       echo ("Connexion reussi \n"); 
    } 
     
    /*Endroit ou le fichier sera uploadé sur le serveur*/ 
    $cfg_upload_path = "images/magasin"; 
    if(!is_writeable($cfg_upload_path)) 
    { 
     
       echo("Le repertoire n'est pas accessible en ecriture.\n"); 
    } 
    /*le up en question*/ 
    $upload=ftp_put($conn_id, $cfg_upload_path."/".$file_name, $file, FTP_BINARY); 
    if (!$upload) 
    { 
     
    	echo "Le telechargement FTP a echoue!"; 
    } 
    else 
    { 
       echo "Telechargement ftp reussit "; 
    } 
    ftp_close($conn_id); 
    } 
    ?>
    mais pas moyen de créer mon fichier

    Aidez moi
    A.Morel

  10. #10
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Au risque de me répéter (une dernière fois) :

    pars d'un script qui fonctionne afin de contrôler que le fichier est bien transmis via HTML
    http://php.developpez.com/faq/?page=...ichiers_upload
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  11. #11
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut
    alors je t'ai ecouter, mais ca marche quand même pas

    page formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <html>
    <body>
    <p>
    <form method="post" enctype="multipart/form-data" action="uploadfile.php">
        <input type="file" name="userfile" size="50">
        <br>
        <input type="submit" value="Envoi">
    </form>
    </p>
    </body>
    </html>
    page ftp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <html>
    <body>
    <?php
    $stock = '/images/';
     
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $stock.$_FILES['userfile']['name']))
    {
        echo "Le fichier ".$_FILES['userfile']['name'].
                " a été téléchargé avec succès dans ".$stock;
    }
    ?>
    </body>
    </html>

    il m'écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: move_uploaded_file(): open_basedir restriction in effect. File(/images/w.paclitestretch0503.jpg) is not within the allowed path(s): (/home/www/db5eabd14bfe01eec636a6d359e50b5a/:/tmp/) in /home/www/db5eabd14bfe01eec636a6d359e50b5a/web/test/uploadfile.php on line 6
    et sur le dossier du site images est chmod 777
    A.Morel

  12. #12
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Vraisemblablement, il y a des restrictions chez ton hébergeur. Il faut voir cela avec lui.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  13. #13
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut
    Alors j'ai reglé le problème du repertoire

    mais j'ai toujour le probleme entre la transmission du javacript et du php

    javascript
    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
     
      function photos(page) {
     var photo = document.getElementById("photo").value;
     
     
      var tmp="file="+photo;
     
    /* on spécifie la méthode, l’URL et le type de transmission  */
    	requete.open("POST","admin/scripts/photos.php",true);  
     
    	requete.onreadystatechange = function()
     	{
    		/* si on a recu la reponse */
    		if(requete.readyState == 4)
     		{  
    			/* on recoit les données et on les affichent*/
     
    			alert(requete.responseText);
    			mapage(page);
     
    		}
    	}
     
     
    	/* on précise l'encodage en spécifiant l'en-tête adéquat */
    	requete.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	/* on execute la requete en transmettant les données */
     
    	requete.send(tmp);  
      }

    php
    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
     
    <?php 
    /*Endroit ou le fichier sera uploadé sur le serveur*/ 
     
    $stock = $DOCUMENT_ROOT.'/images/magasin/';
     
    if(isset($_POST['file']))
    {
    if (move_uploaded_file($_POST['file'], $stock.'asdas.jpg'))
    {
        echo "Le fichier ".$_POST['file'].
                " a été téléchargé avec succès dans ".$stock;
    }
    else
    {
    	echo "Erreur : la photo n'a pas pu etre telecharger ?";
    }
    }
    else
    {
    	echo 'la variable n existe pas';
    }
    il me dit que le la photo n'a pas pu etre telecharger


    Si je passe pas par le javacript et que je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (move_uploaded_file($_FILES['photo']['tmp_name'], $stock.$_FILES['photo']['name']))
    Cela fonctionne.

    Mais avec $_POST['photo'] ca marche pas et je vois pas comment passer la variable depuis mon javascript autrement
    A.Morel

  14. #14
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Citation Envoyé par alexmorel
    ca marche pas et je vois pas comment passer la variable depuis mon javascript autrement
    Moi, je ne vois plus de problème avec PHP. Transfert du fil dans la section Javascript.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  15. #15
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Alors, le forum JS réponds: ce que tu cherches à faire n'est possible qu'avec IE. (cf http://www.15seconds.com/issue/010522.htm).

    Réflechis si ce que tu cherches à faire est vraiment essentiel ou non? Parceque tu vas faire un truc (très) compliqué, donc mieux vaut réfléchir avant si ça vaut le coup...

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

Discussions similaires

  1. Problème avec $_FILES
    Par sliverman dans le forum Langage
    Réponses: 19
    Dernier message: 07/06/2010, 12h22
  2. Problème avec if(isset($_FILES['monfichier']))
    Par delux450 dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2008, 22h32
  3. Problème de poids avec $_FILES
    Par taly dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2006, 12h12
  4. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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