2016-10-10 5 views
0

私は入力に基づいてユーザーのための出力を作成するフォームを自分のWebサイトに用意しています。 ユーザーがダウンロードできるようにこの出力をテキストファイルに作成したい(ブラウザのダウンロードプロンプトで、セキュリティ上の問題なし)。jQuery/Javascriptユーザーのダウンロード用のテキストファイルを作成する

Javascript/jQueryでこれを行う方法は、PHPを使用してサーバー上でファイルを最初に作成する必要はありませんか?

何らかの種類のJavascriptオブジェクトをダミーファイルとして使用して、ユーザーがダウンロードできるようにすることができますか(サーバーからダウンロードするための実際のtxtファイルがないという問題を解決するため)

+0

:このexample by @UselessCodeをチェックしてください。サーバ側のスクリプトが必要 – vamsi

+0

古いブラウザ(単純なプレーンテキストファイル)では、そのドキュメントモードでウィンドウを開くことができます。この回答を見てください[http://stackoverflow.com/questions/7338640/document-opentext-plain-formatting-ignored-in-webkit-safari-chrome](http://stackoverflow.com/questions/7338640/) document-opentext-plain-formatting-ignored-in-webkit-safari-chrome) –

答えて

1

これは、Blobbrowser support,)を使用して達成できます。それは私が考えることはできませんJavaScriptのみまたはjQueryを使って

(function() { 
 
var textFile = null, 
 
    makeTextFile = function (text) { 
 
    var data = new Blob([text], {type: 'text/plain'}); 
 

 
    // If we are replacing a previously generated file we need to 
 
    // manually revoke the object URL to avoid memory leaks. 
 
    if (textFile !== null) { 
 
     window.URL.revokeObjectURL(textFile); 
 
    } 
 

 
    textFile = window.URL.createObjectURL(data); 
 

 
    return textFile; 
 
    }; 
 

 

 
    var create = document.getElementById('create'), 
 
    textbox = document.getElementById('textbox'); 
 

 
    create.addEventListener('click', function() { 
 
    var link = document.getElementById('downloadlink'); 
 
    link.href = makeTextFile(textbox.value); 
 
    link.style.display = 'block'; 
 
    }, false); 
 
})();
<textarea id="textbox">Type something here</textarea> <button id="create">Create file</button> <a download="info.txt" id="downloadlink" style="display: none">Download</a>

+1

BLOBを追加できますか? Firefoxはそれを認識しません... –

+0

それをサポートしていないブラウザ用の「Blob」ポリフィルがあります:https://github.com/eligrey/Blob.js –

関連する問題