同事說不可能用1個ajax去下載檔案
於是乎我就研究了一下
程式碼如下:
js code:
<script>
$(function(){
$.ajax('/ajax/getFile', {dataType:'json', success:function(data){
var bb = new Blob([data.content], {type: 'application/octet-binary'});
$('#link')
.attr({download:'file.bin',href:window.URL.createObjectURL(bb)})
}});
});
</script>
其實這是利用<a>的download屬性(Working Draft:w3schools)加上Blob這物件將檔案內容轉為blob格式使得瀏覽器可以下載
html:
<div id="main"> <a id="link">Download File</a> </div>
backend: (use nodejs express)
exports.getFile = function(req, res){
fs.readFile('file', function (err, data) {
res.json({status:'ok',content:data.toString()});
});
};
reference:
http://caniuse.com/download
http://html5-demos.appspot.com/static/a.download.html
沒有留言:
張貼留言