2017-08-25 52 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字符串,你從你的函數返回,我可以嘗試看看什麼是錯的。 –