デスクトップに入力を受け取る html ファイルがあります。その入力を自分のコンピューターのファイルに書き込むにはどうすればよいでしょうか? それを行うには別の言語を使用する必要がありますか (つまり、python または javascript?)、どうすればこれを行うことができますか? 関連する注意事項として、javascript で html ファイル内からアプリケーションを起動する方法はありますか (目標は、コンピューター上のファイルに書き込むことですか?
5 に答える
現在、Javascriptを使用したローカルファイルへの書き込みは、FileWriter
現在ChromeとOperaでのみサポートされているAPIを使用して実行できます。
http://caniuse.com/#search=filewriter
HTML5Rocks.comのサンプルコードを次に示します。
function onInitFs(fs) {
fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
// Create a new Blob and write it to log.txt.
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
ブラウザーには、コンピューターに対するこのレベルの制御を妨げる多くのセキュリティがあります。これは良いことです。ランダムな Web サイトが、アクセスした人のコンピューターでこのようなことを実行できるようにしたくありません。
これを行う方法は、ブラウザがアクセスできる Web アプリケーションを作成することです。ブラウザーは、自分のコンピューターで実行されているこのアプリケーションにデータを送信でき、アプリケーションはファイル システムを操作したり、他の多くのことを実行したりできます。
いいえ、ブラウザはこれらのことを行うことができません。はい、ブラウザ自体の外部で実行されるものを作成するには、「別の言語」を使用する必要があります。これを行うには、javascript (node.js を参照) または python を使用できます。また、そのようなものを作成するために存在する他のほぼすべてのプログラミング言語も使用できます。どちらを選ぶかはあなた次第です。
別の言語を使用する必要があります。Save file Javascript with file name (これには、Web サイトで作成し、ユーザーにダウンロードさせる必要があります) とPython Save to file (HTML での Python の実装については、こちらを参照してください) が表示されます。または Javascript では、次 のようActiveX
にしてファイルを保存できます*:
ActiveX
function WriteToFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\Test.txt", true);
s.WriteLine('Hello');
s.Close();
}
パイソン
myFile = open('Failed.py', 'w')
myFile.write('whatever')
myFile.close()
Javascript (非 ActiveX)
uriContent = "data:application/octet-stream;filename=filename.txt," +
encodeURIComponent(codeMirror.getValue());
newWindow=window.open(uriContent, 'filename.txt');
**注: の使用はお勧めしませんActiveX
。詳細については、ActiveX と Javascript が混在しないを参照してください*
短い答え:
できません。Webブラウザのセキュリティとサンドボックス化はこれを防ぎます。
長い答え:
小さなLAMPスタック、Ruby on rails(ローカルホストサーバー)、Python / Django(ローカルホストサーバー)をセットアップして、HTML/Webフォームをホストします。ローカルデーモンは、フォームにデータを入力するときに、ファイルへのデータの追加を処理できます。
HTML5を使用すると、ローカルファイルシステムへの書き込みを可能にする特別なフックが得られますが、それらはブラウザ固有であり、時々壊れることがあります。
あなたの質問は少し答えにくいです。「入力が必要」ということは、関連する要素があることを意味する場合、PHPform
などの言語を介してそれを処理できます。
コードを編集して HTML の学習を開始するだけの場合は、メモ帳/TextEdit と最新のWeb ブラウザーが新しい親友になります。