Workaround for downloading application/octet-stream in Safari

This commit is contained in:
Antelle
2015-10-03 22:26:16 +03:00
parent bf44e184c1
commit c0c13ccc0e
+14
View File
@@ -94,6 +94,20 @@ var saveAs = saveAs || (function(view) {
}
// on any filesys errors revert to saving with object URLs
, fs_error = function() {
if (target_view && typeof safari !== "undefined" && typeof FileReader !== "undefined") {
// Safari doesn't allow downloading of blob urls
var reader = new FileReader();
reader.onloadend = function() {
var base64Data = reader.result;
base64Data = base64Data.replace(/^data:.*;/, 'data:attachment/file;');
target_view.location.href = encodeURI(base64Data);
filesaver.readyState = filesaver.DONE;
dispatch_all();
};
reader.readAsDataURL(blob);
filesaver.readyState = filesaver.INIT;
return;
}
// don't create more object URLs than needed
if (blob_changed || !object_url) {
object_url = get_URL().createObjectURL(blob);