2017-08-25 27 views
1

我将kml文件转换为base 64.现在我想要编码base 64再次变成kml文件?这可能吗?我转换kml文件是这样的..如何将base 64编码为.kml文件?

 $scope.myFunction = function() { 
     var files = document.getElementById('myFile').files; 
     if (files.length > 0) { 
      getBase64(files[0]); 
     } 
    } 

    function getBase64(file) { 
     var reader = new FileReader(); 
     reader.readAsDataURL(file); 
     reader.onload = function() { 
      console.log(reader.result); 
     }; 
     reader.onerror = function (error) { 
      console.log('Error: ', error); 
     }; 
    } 

如何将kml文件存储到数据库?

+0

[从JavaScript的一个base64字符串创建的Blob可能的复制](https://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in-javascript) – Endless

+0

你为什么要将事件转换为base64? – Endless

回答

0

它肯定是可能的,你只需要解码base64并将结果再次转换成文件。

function base64ToFile(base64){ 

    content=atob(base64); 
    var file = new Blob([content], {type: 'kml'}); 

    //You can now asign the file to a link to download, send it with ajax, etc.. 

    a.href = URL.createObjectURL(file); 

} 

请记住,你不能写入文件直接拖到从JavaScript盘,因为这将是一个安全问题,你需要牛逼

+0

非常感谢先生,先生后续问题我想要在谷歌地图查看这个kml。 https://developers.google.com/maps/documentation/javascript/examples/layer-kml我想更改这个kml文件 –

+0

未能在'Window'上执行'atob':要解码的字符串编码不正确。错误sir –

+0

你需要确保base64字符串,你提供的函数是一个正确格式化的base64字符串,如果你发送base64字符串,你从你的函数返回,我可以尝试看看什么是错的。 –