Safariで大きなファイル(正確に8メガバイト)を保存する方法を探しています。eligreyFileSaverとフラッシュプラグインDownloadifyの両方でURIスキームを使用してみました。これらすべてにより、Webワーカープロセスが約2ギガバイトに達するまでSafariがメモリを割り当て、その後Safariがクラッシュします。
私は以前にこのような質問があることに気づきましたが、私はそれらの質問がもたらしたすべてを試しました。リンク:
- HTML5/Javascriptを使用してファイルを生成および保存する
- JavaScriptを使用してクライアント側でファイルを保存する方法は?
- クライアント側でChromeのjavascriptを使用してファイルを作成します
このコードはFirefoxとGoogleChromeで機能します(saveAsにeligreyFileSaverライブラリを使用します)。
function io_saveData (){
var bb;
var buffer;
var data;
alert ("The file will now be saved.");
bb = new BlobBuilder();
for (var i = 0;i<kMapHeight;i++){
var stduint8 = new Uint8Array (uint16map[i].buffer);
var stduint8LittleEndian = new Uint8Array (kMapWidth*2);
//byte swap work around
for (var j = 0;j<stduint8.length;j+=2){
stduint8LittleEndian [j] = stduint8 [j+1]
stduint8LittleEndian [j+1] = stduint8 [j];
}
bb.append(stduint8LittleEndian.buffer);
}
var blob = bb.getBlob("example/binary");
saveAs(blob, "Data File");
bb = null;
buffer = null;
data = null;
}
Safariがクラッシュせずにダウンロードを作成する方法を探しています。展開領域はMacOSXであるため、各マシンにはPHPとともにapacheが組み込まれていますが、私はそのルートを採用したくありません。