HTMLを使用して、クライアントのマシンでファイルをプレーンテキスト(つまり、.cpp、.txt、または.htmlファイル)として開くにはどうすればよいでしょうか。プレーンテキストファイルをユーザーのマシンからHTMLに抽出したいと思います<textarea>
。参考までに、私はhiccup、clojure、およびwebnoirを使用してHTMLとサーバーを生成しているので、これらはすべて、プロセスを支援するために使用する他のオプションです。
2 に答える
1
主なオプションは2つあります。ファイルをサーバーにアップロードしてHTMLコンテンツとして提供するか、HTML5のFileAPIを使用します。この質問では、さらにいくつかのオプション(アプレット、File APIでのドラッグアンドドロップの有効化など)についても説明します。
ファイルをアップロードする
- ユーザー
<input type="file" .../>
に1ページでファイルを選択させる - ファイルの内容をサーバーにアップロードします。
- 別のページにリダイレクトして、ファイルの内容を表示します
- アップロードされたファイルのコンテンツをそのページのテキストエリアに表示します。
長所:
- この方法は非常に単純で簡単です。
- ファイルをスキャンして、サーバー上で重い処理を行うことができます
短所:
- サーバーへの移動には時間がかかる場合があります。
HTML5ソリューション
- ユーザーに、を使用してファイルを選択してもらいます
<input type="file" .../>
- コンテンツを投稿する代わりに、JavaScriptを使用してファイルをHTML 5ローカルストレージにロードします(以下のコードを参照)
- JavaScriptを使用して、ファイルの内容をDOMに挿入します。
長所:
- サーバーへのトリップなし(高速)
短所:
- すべての検証/処理は、JavaScriptのクライアント側で実行する必要があります。これにより、クライアントが重くなり、ユーザーがコードを表示/変更できるようになります(これについては気にする必要がない場合があります)。
このサイトからこのコードスニペットを取得しました。このサイトには、FileAPIの使用例がいくつかあります。
function onInitFs(fs) {
fs.root.getFile('log.txt', {}, function(fileEntry) {
// Get a File object representing the file,
// then use FileReader to read its contents.
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
// Do something with the contents, which are stored in 'this.result'
};
reader.readAsText(file);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
于 2012-06-29T18:02:57.837 に答える
0
迅速で汚いオプションは、単純にそれをslurp
行うことです。
(slurp "mycode.cpp")
于 2012-06-28T21:49:51.213 に答える