私はファイルの内容、名前、タイプを渡すことができる関数を持っています。関数は自動的にそれを保存します。テキストベースのドキュメントではうまくいきますが、イメージファイルのように他のファイルを保存しようとしています。ラインのどこかに壊れていて、動かない。イメージブロブを保存する
function write(text, filename, mime){
var file = new Blob([text], {type:mime}), a = document.createElement('a');
// Download in IE
if(window.navigator.msSaveBlob) window.navigator.msSaveBlob(file, filename);
// Download in compliant browsers
else{
var url = URL.createObjectURL(file);
a.href = url, a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function(){
document.body.removeChild(a);
window.URL.revokeObjectURL(url);}, 0);}}
write('Plain text', 'demo.txt', 'text/plain');
write(atob('iVBORw0KGgoAAAANSUhEUgAAAAEAAAAdCAIAAADkY5E+AAAAD0lEQVR42mNg0AthoDMGAE1BDruZMRqXAAAAAElFTkSuQmCC'), 'demo.png', 'image/png');
FileSaver.jsはあなたの問題を解決する必要があります。 –
作業コードとフィドルで私の答えを更新しました。 – Cheloide
[データURIをファイルに変換してからFormDataに追加する]の複製が可能です(https://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata) – Kaiido