JavaScriptインプリメンテーションファイルのダウンロードと名前の変更
8666 ワード
HTML
href="/images/liang.jpg"download="ファイル ">HTML 5のaラベルにはfilenameプロパティが されており、 したdownloadプロパティ にダウンロードできるという アクセスは ありませんが、ドメインをまたぐとだめです。 の を してみましたが、ドメイン エラーを するのではなく、 のページでファイルを くのは、かなり が いです。 の は に する
/**
* blob
* url
*/
function getBlob(url) { return new Promise(resolve => { const xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'blob'; xhr.onload = () => { if (xhr.status === 200) { resolve(xhr.response); } }; xhr.send(); }); } /** * blob * filename */ function saveAs(blob, filename) { if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, filename); } else { const link = document.createElement('a'); const body = document.querySelector('body'); link.href = window.URL.createObjectURL(blob); link.download = filename; // fix Firefox link.style.display = 'none'; body.appendChild(link); link.click(); body.removeChild(link); window.URL.revokeObjectURL(link.href); } } /** * * @param {String} url * @param {String} filename */ function download(url, filename) { getBlob(url).then(blob => { saveAs(blob, filename); }); }