0

HTMLを使用して、クライアントのマシンでファイルをプレーンテキスト(つまり、.cpp、.txt、または.htmlファイル)として開くにはどうすればよいでしょうか。プレーンテキストファイルをユーザーのマシンからHTMLに抽出したいと思います<textarea>。参考までに、私はhiccup、clojure、およびwebnoirを使用してHTMLとサーバーを生成しているので、これらはすべて、プロセスを支援するために使用する他のオプションです。

4

2 に答える 2

1

主なオプションは2つあります。ファイルをサーバーにアップロードしてHTMLコンテンツとして提供するか、HTML5のFileAPIを使用します。この質問では、さらにいくつかのオプション(アプレット、File APIでのドラッグアンドドロップの有効化など)についても説明します。


ファイルをアップロードする

  1. ユーザー<input type="file" .../>に1ページでファイルを選択させる
  2. ファイルの内容をサーバーにアップロードします。
  3. 別のページにリダイレクトして、ファイルの内容を表示します
  4. アップロードされたファイルのコンテンツをそのページのテキストエリアに表示します。

長所

  • この方法は非常に単純で簡単です。
  • ファイルをスキャンして、サーバー上で重い処理を行うことができます

短所

  • サーバーへの移動には時間がかかる場合があります。

HTML5ソリューション

  1. ユーザーに、を使用してファイルを選択してもらいます<input type="file" .../>
  2. コンテンツを投稿する代わりに、JavaScriptを使用してファイルをHTML 5ローカルストレージにロードします(以下のコードを参照)
  3. 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 に答える