Sauvegarder un fichier directement sur le serveur

Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 20 juin 2007 à 09:48
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 21 juin 2007 à 09:41
Bonjour,
Je suis en train de développer un editeur WYSIWYG. Je voudrais lorsque l'utilisateur a fini sa création qu'il puisse directement l'enregistrer sur le serveur et non pas en local;

J'arrive à faire la sauvegarde en local mais je ne sais pas si c'est possible de donner la possibilité à l'utilisateur d'enregistrer directement sa création sur le serveur;
Je ne connais pas très bien AJAX, donc si quelqu'un peut m'aider, ça serait super sympa.

Je mets mon code permettant de sauvegarder en local.

function CreateFile(path, text)
{
   var fso, tf;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   tf = fso.CreateTextFile(path, true);
   tf.WriteLine(text) ;
   tf.WriteBlankLines(1) ;
   tf.Close();
}



function saveAs(path)
  {
    var htmlInEditor =Editor.innerHTML;
    htmlInEditor='<html><head> </head>' + htmlInEditor + '</html>';
    CreateFile(path, htmlInEditor);
  }

Jarod_Delaware

29 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 10:27
Bonjour,

    c'est un problème "langage serveur" ( asp, php, ruby... )
    depuis le html/javascript, on appelle un script sur le serveur
       qui y mémorisera ce qu'il veut.
       appel soit par l'url, soit avec un formulaire, soit avec ajax.

    exemple php, avec un formulaire :
    <form... action="toto.php" method="post" ...>
           tous les champs de saisie avec des name
       
    </form>

    et php gère $_POST["name des champs de saisie"]

    on pourrait écrire un ActiveX ( ou trouver ? ) qui enregistrerait
        sur le serveur, mais serait-ce raisonnable ?

<hr />


Cordialement                Bul    
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
20 juin 2007 à 10:35
Salut,
Merci pour ta réponse Bultez.

Du coup, c'est pas possible de sauvegarder directement sur le serveur la page en utilisant httpRequest.send ?

Le problème, c'est que je voudrais que l'utilisateur sauvegarde directement sa page sur le serveur et non pas en local. Tout en sachant que l'interface est stockée sur le serveur.

Jarod_Delaware
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 11:19
>>httpRequest.send ?
c'est "ajax". ça appelle un script (php
par exemple) sur le serveur.


<hr />



Cordialement        Bul    
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
20 juin 2007 à 11:26
je pense que je vais abandonner la solution d'enregistrer directement la page sur le serveur.
Je vais proceder de cette façon, dis moi si c'est judicieux. Je vais autoriser l'enregistrement de la page sur le disque dur du client puis faire un file upload de ce fichier.
Est ce que c'est possible d'automatiser l'upload de ce fichier directement en utilisant un script?

Jarod_Delaware
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 12:03
mon avis ( il ne vaut pas grand chose, mais comme c'est le mien
    je le respecte ! )

    _ php. pour ce genre de truc, "simple à faire".
       ( tu trouveras des exemples, à adapter, partout et sur PHPCS aussi )

    un ActiveX qui télécharge sur le serveur est à écrire... et pas en javascript.  
    quand à ta solution de télécharger automatiquement, pareil, il va falloir
       développer l'ActiveX et un fichier sera en plus sur un support du client.

<hr />


Cordialement            Bul    
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
20 juin 2007 à 12:06
Salut

la meilleur solution etait ta premiere idee couplee a un code php, asp, perl, java ou autre...

en effet, je me vois mal enregistrer sur mon HD tout ce que je poste sur codes-sources, avant de l'envoyer (ce n'est qu'un exemple) en plus, l'enregistrement chez le client, ca sera IE only

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
20 juin 2007 à 12:20
Ok, merci pour vos réponses. En fait, mon interface WYSIWYG est cencé créer des pages web qui seront par la suite envoyées à une liste de diffusions. C'est pour celà que je voulez enregistrer sous forme de fichier.htm.

Du coup, en adoptant une solution php, asp, etc... je serais bien obligé de stocker le code HTML crée par mon interface dans une table puis de générer un fichier HTML à partir du code stocké dans ma table. Je sais pas ce que vous en pensez. Peut être qu'il existe une solution moins casse tête.

Jarod_Delaware
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 12:49
ton wysiwyg est dans un iframe, un div...
met le innerHTML dans le value d'un textarea
envoie le au php qui stockera dans un bête fichier texte
    ( ou table d'une base de données si tu y tiens )
pour la diffusion ( ou php là aussi sera nécessaire, enfin le plus simple )
    tu pourra générer ce qut tu veux à partir des fichiers textes
    ( si tu le met dans un div, un iframe... = le wysiwyg originel )

<hr />


Cordialement                Bul    
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
20 juin 2007 à 13:52
Oui mon wysiwyg est dans une balise div. Je vais essayer de le passer en textarea en lui passant comme value="innerHTML".
Question bête, c'est pas possible de faire la même opération si je suis à l'intérieure d'une balise div?

Merci encore pour les réponses.

Jarod_Delaware
0
yousfane Messages postés 243 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 21 décembre 2007 2
20 juin 2007 à 14:08
Salut
Ta solution d'ActiveX ne peut pas marcher chez tout les visiteurs, ça marche seulement sous IE
>>je serais bien obligé de stocker le code HTML crée par mon interface dans une table
Pas du tout, tu peux enregistrer ça dans un fichier sur ton serveur
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 14:27
>>je vais essayer de le passer en textarea en lui passant comme value= "innerHTML".
>>Question bête, c'est pas possible de faire la même opération si je suis à l'intérieure d'une balise div?
en javascript        textarea .value =div.innerHTML



<hr />



Cordialement                Bul    
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 14:29
j'ai mangé la moitié du message...
    innerHTML=>value juste avant l'envoi du formulaire
>>f
aire la même opération si je suis à l'intérieure d'une balise div?
    je n'ai pas compris la question


<hr />



Cordialement                Bul    
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
20 juin 2007 à 14:59
Question à Bultez
:
Ma région éditable, là où l'on peut créer sa page WEB dans mon WYSIWYG est à l'intérieure d'une balise div et non pas dans un textarea.

...

J'ai essayé de mettre un textarea à la place du div mais je ne peux plus faire de mise en forme sur mon texte ou insérer des images.

Question pour yousfane :
Quand tu dis : Pas du tout, tu peux enregistrer ça dans un fichier sur ton serveur

Comment est ce qu'on peut faire ça. En passant par php?

Jarod_Delaware
0
yousfane Messages postés 243 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 21 décembre 2007 2
20 juin 2007 à 15:00
Salut
Oui, du php
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 15:24
déjà répondu alors :
juste avant envoi du formulaire :


textarea
.value=div.innerHTML
en javascript.
<hr />


Cordialement                Bul    
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 15:29
Bonjour,

<form name= "env" action="page en php"
       method="post" onsubmit="document.getElementById('toto').value=

document.getElementById('editor').innerHTML;


">
    <textarea id ="toto"></textarea>
    <!-- par exemple, on pourrait envoyer par javascript-->
</form>


et le php traitera $_POST["toto"] qui est le contenu du textarea.

<hr />


Cordialement            Bul    
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 juin 2007 à 15:31
ch'tit oubli...


<textarea name="toto" id="toto"></textarea>
indispensable si on veut que le champ soit transmis au serveur

( c'est bien aussi pour ça que je préfère utiliser les name que les id ! )




<hr />




Cordialement                Bul    
0
yousfane Messages postés 243 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 21 décembre 2007 2
20 juin 2007 à 15:40
Salut
Pour le fichier php

<?php
$fichier = fopen($_POST['fichier'].".html", 'a+');
fputs($fichier, $_POST["toto"]); 
fclose($fichier);
?>

Et j' ajoutes à la source de bultez

<form name="env" action="file.php" method="post" onsubmit="document.getElementById('toto').value=document.getElementById('editor').innerHTML; " >
    <textarea name ="toto"></textarea>

   
    <!-- par exemple, on pourrait envoyer par javascript-->
</form>
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
20 juin 2007 à 15:40
Merci Bultez pour toutes ces explications. Par contre, encore trois petites questions :

1) le textarea sera visible dans mon interface WYSIWYG?
2) Ma région editable qui se trouve dans une balise
...
devra se trouver à l'interieure ou à l'exterieur ou à l'interieur de la forme?
3) Tu as marqué :
<!-- par exemple, on pourrait envoyer par javascript-->
Est que tu aurais un exemple?

En tout merci beaucoup pour ton aide.

Jarod_Delaware
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
20 juin 2007 à 15:55
Salut,

Donc si j'ai bien compris, je récupère la création qui est contenu dans ma balise
...
dans le textarea de façon à le transmettre au serveur que j'enregistre dans un fichier sur le serveur?

Jarod_Delaware
0