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 :

Creer un fichier sur le serveur


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Par défaut Creer un fichier sur le serveur
    Bonjour,

    Avec le bout de code suivant j'arrive a créer un fichier sur la machine cliente, mais comment en créer un sur le serveur?

    var fso, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    s = fso.CreateTextFile(strFileName, true);
    s.writeline(Resultat);
    s.Close();

    Merci d'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Par défaut
    tu ne peux pas en javascript, il faut passer par un langage serveur (php, asp, perl, etc...)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Par défaut
    Oki, merci.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    oui et juste une précision le code donné au dessus est du vbscript et pas du javascript ...
    de plus il nécessite un activeX et est exclusif IE ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    oui ce code peut être porté en js mais il sera IE uniquement.
    et le file system en question est celui du client.

    pour créer un fichier sur le serveur il faut en passer par XMLhttpRequest

    le plus simple est de l'envoyer dans les data en mode POST
    les datas sont une chaine de caractère comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strFile = 'filemane=monfichier.txt&data=le contenus de mon fichier avec tout ce que je veux.';
    tu prépare ta chaine tu ouvre en mode POST une url savefile.php avec XMLHttpRequest
    et tu fais un send de test data.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oXML = new XMLHttpRequest(); //lire la doc pour creer l'objet sous IE
    oXML.open('POST', 'savefile.php', false);
    oXML.send(strFile );
    ton script php est des plus simple puisque tu reçois dan $_POST['filemane'] le nom du fichier
    et dans $_POST['data'] le contenus
    il ne te reste qu'a faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $fd = fopen ($_POST['filemane'], "w");
    if ($fd) {
      fwrite($fd, $_POST['data']);
      fclose($fd);
    }
    bon à fignoler pour le mettre au bon endroit et c'est tout
    A+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Par défaut
    Merci pour les precisions.

    J'ai donc créé un XMLHttpRequest mais rien ne se passe quand j'appelle la methode send:

    try
    {
    oXML = new ActiveXObject("Microsoft.XMLHTTP");
    oXML.open('POST', 'save_file.php', false);
    oXML.send(strFile);
    alert("OK");
    }
    catch(err)
    {
    alert ("Erreur");
    }

    Mon fichier php n'est jamais appelé, et pourtant il va bien jusqu'au bout sans erreur (j'ai le msg 'ok').

    Mais j'ai remarqué que meme en mettant un nom de fichier php qui n'existe pas, cela ne change rien, pas de msg "erreur"...

    J'ai fait un "alert" sur strFile pour vérifier et il contient bien ce que je veux.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Par défaut
    Apres plusieurs tests, c'est en fait la recuperation des parametres dans le php qui bloque.

    J'ai :

    strFile = "filename=monfichier.txt&data="+Resultat;
    oXML = new ActiveXObject("Microsoft.XMLHTTP");
    oXML.open('POST', 'save_file.php', false);
    oXML.send(strFile);

    et dans le php :

    $name = $_POST['filename'];
    $date = $_POST['data'];

    Ces deux variables restent vides, pourtant, juste avant le send j'ai fait un "alert" sur strFile et tout y est bien... Ai-je oublié qlq chose?

  8. #8
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Il faut déclarer le header de de type de contenu... et échapper les caractère des données que tu envois... .. .

    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
     
    function createAjaxObj()
    {
        var obj;
        if(window.XMLHttpRequest)
    	   obj = new XMLHttpRequest(); 
        else if(window.ActiveXObject)
        {
    	 var ieversions = ['Msxml2.XMLHTTP',
                                    'Microsoft.XMLHTTP',
                                    'Msxml2.XMLHTTP.5.0',
                                    'Msxml2.XMLHTTP.4.0',
                                    'Msxml2.XMLHTTP.3.0'
                                   ]; 
     
            for(var i=0; !obj && i<ieversions.length; i++)     
           {         
                try        
                {            
                    obj = new ActiveXObject(ieversions[i]);        
                }         
                catch(e)  { }     
            }
        }
     
        return obj;
    }
     
    var oXML =  createAjaxObj();
     
    if(oXML)
    {
        strFile = "filename=monfichier.txt&data="+escape(Resultat);
        oXML.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        oXML.open('POST', 'save_file.php', false);
        oXML.send(strFile);
    }
    else // traitement de l'erreur d'instanciation de l'objet xmlhttprequest...
    @ tchaOo°

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Par défaut
    Merci bien mais je dois être mauvais, j'ai encore un pb!

    C'est cette ligne là qui plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oXML.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    J'ai une "Object error", pourtant il est bien construit et non null...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Par défaut

    J'y suis arivé, en fait, il faut faire le "open" avant le "setRequestHeader".

    Merci bcp pour l'aide !

  11. #11
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Oui désolé... erreur d'inattention... .. .

    @ tchaOo°

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/07/2005, 20h53
  2. [WebLogic] Récupérer un fichier sur le serveur...
    Par T.NightGlow dans le forum Weblogic
    Réponses: 1
    Dernier message: 29/06/2005, 15h32
  3. Réponses: 6
    Dernier message: 08/04/2005, 03h00
  4. [VB.NET] Download de fichiers sur un serveur...
    Par Webman dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/05/2004, 10h25
  5. [Servlet][Tomcat] Upload d'un fichier sur le serveur
    Par gandalf_le_blanc dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 19/04/2004, 13h56

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