11

HTML5ではFileWriterクラスが導入されています。このクラスを使用すると、Blobを作成できます。(ファイルはBlobの拡張です。)JavaScriptを使用すると、Blobを作成し、たとえばdataURLを使用して表示できます。

例:

var bb = new BlobBuilder();
bb.append('some text')
var blob = bb.getBlob('text/plain');

var fr = new FileReader();
fr.onload = function(e) {
 document.location = this.result; // voila the dataURL
}
fr.readAsDataURL(blob);

しかし、それだけでは十分ではありません:)新しく作成された(テキスト)ファイルをダウンロードしたいのですが。同じウィンドウまたは別のウィンドウで開かない。

方法はありますか?がなければならない。どのように?

(ディスカッションはすでにGoogle Chromeグループに存在します)

更新
仕様が変更されたため(または何か!?)、ファイルAPIが変更されました。BlobBuilderWebkitは、現在はと呼ばれている、との下位互換性を破りWebKitBlobBuilderました。jsFiddleで異なる同じ例

UPDATE
ブロブの作成が再び異なる動作をするようになりました(これ以上append()):

blob = new Blob(['some text'], {type: 'text/plain'});
4

2 に答える 2

12

ダウンロードタグをBlobオブジェクトと組み合わせて使用​​すると、うまくいきます(少なくとも最新のChromeバージョンでは)。このフィドルを参照してください:

var blob = new Blob(['blaaaaat'], {type: 'text/plain'});
$('a').attr("href", window.URL.createObjectURL(blob));
$('a').attr("download", "woeii.txt");

F—i—r—e—f—o—x——d—o—e—s—n—'—t——s—u—p—p—o—r—t——t—h—e——d—o—w—n—l—o—a—d— Firefoxでのダウンロード属性の実装に関する議論はここにあります

編集: 2013年10月3日の時点で、ダウンロード属性が最新のFirefoxバージョンでサポートされるようになりました。

于 2013-02-27T14:43:32.673 に答える
1

これは、テキストBLOBを作成し、テキストファイルとしてダウンロードするための純粋なJavascriptソリューションです。

var fileContent = 'This is sample text file';
var fileName = 'sampleFile.txt';

const blob = new Blob([fileContent], { type: 'text/plain' });
const a = document.createElement('a');
a.setAttribute('download', fileName);
a.setAttribute('href', window.URL.createObjectURL(blob));
a.click(); // EXECUTING CLICK EVENT WILL AUTO-DOWNLOAD THE FILE
于 2019-06-19T09:35:18.700 に答える