2009-01-31 10 views
0

est-il possible de créer un fichier sur localhost avec javascript?Créer un fichier avec Javascript

+1

Dans le navigateur? Plate-forme? – AnthonyWJones

+2

Cette question a 4 ans et beaucoup a changé Si vous êtes curieux à ce sujet maintenant, regardez dans FileWriter, localstorage, indexeddb, requestFileSystem, LocalFileSystem et d'autres options. Toujours pas entièrement réalisable à la mi-2013, mais nous y arrivons. –

Répondre

7

Pas dans une page Web. Si vous utilisez Windows Script Host alors oui vous pouvez via ActiveX, mais je présume que vous ne le faites pas. Vous pouvez cependant renvoyer les données au serveur via AJAX et les stocker pour vous.

3

Vous pouvez créer cookies pour stocker des données sur la machine locale, qui est à peu près la seule façon de créer des fichiers sur la machine locale.

-2
<html> 
<head> 
<title>Create File</title> 

<! This function will create a file named 'newfile' on the same directory as the HTML unless path is given> 

<script language="javascript"> 
function openFile() 
{ var filePath = 'c:/filename.txt'; 
var fileSysObj = new ActiveXObject('Scripting.FileSystemObject'); 

fileSysObj.CreateTextFile(filePath); 
} 
</script> 
</head> 

<body> 

Cela créera un fichier appelé "filename.txt" sur votre lecteur c: \.
Vous devez accepter le contrôle ActiveX ou désactiver l'invite pour créer un fichier.

<button type=submit name=button onClick="openFile();">create file</button> 
</body> 
</html> 
2

Je suppose que le contenu du fichier est prêt. Ensuite, vous pouvez demander un « enregistrer sous » dialogue comme ceci:

var exportText; // this variable needs to contain your content 
var targetFilename = "myfilename.ext" 

function presentExportFile() { 
    var download = document.createElement('a'); 
    // you need to change the contenttype to your needs in the next line. 
    download.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(exportText)); 
    download.setAttribute('download', targetFilename); 

    download.style.display = 'none'; 
    document.body.appendChild(download); 

    download.click(); 

    document.body.removeChild(download); 
} 

2017 addendum: Depuis que j'ai écrit, j'avais un navigateur exotiques (xombrero) rejeter. Donc, je ne peux pas dire avec certitude que c'est The Way.

Questions connexes