2010-06-02 3 views
0

J'ai développé une application qui permet à l'utilisateur de remplir des champs de texte avec des informations. Je veux qu'ils soient en mesure d'appuyer sur un bouton qui fera un fichier avec des données (un tableau très long avec des informations sur ce qu'ils ont tapé et où il devrait aller) afin qu'ils puissent recharger les données à une date ultérieure. Je n'ai pas de serveur maintenant, et j'envoie cette application en tant qu'application html autonome à mes amis pour leur utilisation jusqu'à ce que je reçoive hosing/mySql/etc Y at-il un moyen que quand ils cliquent sur un bouton, il faudra ces données (enregistrées sous forme de tableau, save_data), le mettre dans un fichier, et fondamentalement commencer le processus de téléchargement à partir de leur navigateur Web? Et plus tard, quelle technique aurais-je besoin d'examiner pour enregistrer cela dans les comptes d'utilisateurs en ligne?Javascript: Sauvegarder les données json sous forme de fichier sur le disque dur du serveur/utilisateur

Répondre

1

Il est posible, mais seulement si vous forcez votre les utilisateurs d'utiliser Windows et Microsoft Internet Explorer. Vous pouvez envoyer le fichier html sous forme de fichier hta, qui peut écrire et lire des données à partir du disque dur. vérifiez http://msdn.microsoft.com/en-us/library/ms536496%28VS.85%29.aspx pour plus d'informations.
Un fichier hta est essentiellement un fichier html local avec des balises supplémentaires dans l'en-tête, et est exécuté (interprété) localement sans restrictions de sécurité, comme n'importe quel fichier exe. Je ne sais pas comment afficher le code html complet ici, (markdown n'est pas pour moi), donc si vous voulez un exemple:
1 - créer un fichier test.hta, avec le standard html, tête, corps et balises de script
2 - à l'intérieur balise head, insérez

<HTA:APPLICATION 
    ID="oMyApp" 
    APPLICATIONNAME="test" 
    BORDER="yes" 
    CAPTION="yes" 
    SHOWINTASKBAR="yes" 
    SINGLEINSTANCE="yes" 
    SYSMENU="yes"> 
</HTA:APPLICATION> 

3 - patte intérieure du corps mis un bouton avec onclick = "writeText();"
4 - dans la balise script insert

function writeText(){ 
     try{ 
      var fso = new ActiveXObject("Scripting.FileSystemObject"); 
      var fileObject = fso.OpenTextFile("C:\\testhta.txt", 8, true,0);   
      fileObject.WriteLine('text file written'); 
      fileObject.close(); 
     }catch(ex){ 
      alert(ex); 
     } 
    } 

5 - enregistrer, double-cliquez dessus, cliquez sur le bouton et vous obtiendrez une belle « C: \ testhta.txt » fichier « fichier texte écrit » dans il.

1

Si vous ne disposez pas d'un serveur, pas ... il n'y a aucun moyen de lancer un téléchargement de fichier/save basé sur des données générées dynamiquement avec JavaScript

Questions connexes