着地シンプルだったけどドハマりしたのでメモしておく。
- ファイル保存はHTML5の
<a href="" download=""></a>
でも一見できそうだが、jpgやmp3はブラウザ上で開いてしまうのでNG - HTML5の
saveAs()
は各ブラウザ対応が違いすぎて死んだのでFileSaverというライブラリに任せたかった - MINE_TYPEの指定不要っぽい?(ファイル形式によっては必須かもしれない)
- 対象ファイルをURL経由で取得する際、axiosの場合は
responseType: 'blob'
が必須だった
// ES2015
import axios from 'axios'
import FileSaver from 'file-saver'
return axios.get('https://hogefuga.com/input_filename.mp3', {responseType: 'blob'})
.then((res)=>{
const blob = res.data
FileSaver.saveAs(blob, 'download_filename.mp3')
})