2013-03-03 53 views
0

我在骨幹模型中有BASE64編碼文件。將Backbone.js模型的BASE64文件發送到瀏覽器

看起來像這樣(console.log(model.toJSON());):

Attachments: Array[1] 
    0: Object 
     Content: "JVBERi0xLjQKJeLjz9MKMSAwIG9iaiA8PC9UeXBlL..." 
     ContentLength: 29512 
     ContentType: "application/octet-stream" 
     Name: "Notification.pdf" 

如何發送到這個瀏覽器作爲一個click事件的強迫下載? 我想避免回到服務器來做到這一點。

感謝

回答

0

您有幾種不同的選擇,所有涉及Data URIs

如果你只想做一個快速的下載和不關心的文件名是什麼,那麼你可以有你的JS做到這一點:

window.location = 'data:application/octet-stream;base64,JVBERi0xLjQKJ...'; 

但是,如果你想成爲能夠爲下載指定一個文件名,那麼您需要回退到新的HTML5功能和一個<a>標籤。

var a = document.createElement('a'); 
a.href = 'data:application/octet-stream;base64,JVBERi0xLjQKJ...'; 
a.download = 'Filename.pdf'; 
a.click(); 

這將工作在舊的瀏覽器,但由於download屬性是HTML5中的新的,他們將下載的文件沒有正確的文件名。

+0

非常感謝。它的內部使用的應用程序,所以沒有問題只指定HTML5瀏覽器:) – 2013-03-09 06:58:11

相關問題