2014-02-20 49 views
2

我生成一個CSV客戶端並將其放入Blob中,然後創建一個對象URL。是否可以使用客戶端生成的blob url保存到Google Drive

我試圖完成的是生成此blob網址,然後將文件保存到Google雲端硬盤。我在這個例子中使用了保存到驅動器按鈕,但它似乎甚至沒有加載保存按鈕,除非我去掉「blob:http:」,在這種情況下,它會正確加載按鈕,但這不是一個有效的文件了。

這甚至可以將blob文件保存到Google Drive嗎?

這裏是我的代碼如下所示:

var data = [["one", "info 1", "additional 1"], ["two", "info 2", "additional 2"]], 
     csvContent = [], output, objectURL; 

    data.forEach(function(infoArray, index) { 
     var dataString = infoArray.join(","); 
     csvContent += index < infoArray.length ? dataString+ "\n" : dataString; 
    }); 

    output = new Blob([csvContent], { type: 'text/csv' }); 
    objectURL = URL.createObjectURL(output); 

    gapi.savetodrive.render('savetodrive-div', { 
     src: objectURL, 
     filename: 'save-to-drive.csv', 
     sitename: 'Example' 
    }); 

謝謝!

+0

我希望能夠做到這。我可以用Dropbox來做。 – frumbert

回答

0

它不適用於'blob:'URI,請參閱下面的詳細信息。

This URLdata URIs關於blob:does this reference about the save to google drive button沒有特別說明。因此我必須自己嘗試一下blobl: URI。

請參閱this fiddle

下面的代碼片段是一樣的,只是它會導致一個錯誤,指出「該文檔是沙盒並且缺少'allow-same-origin'標誌。當我嘗試它。 (因此,我包括小提琴URL)。

$(document).ready(function() { 
 
\t var blob = new Blob(["test"], { type: "text/plain" }) 
 
    var url = window.URL.createObjectURL(blob); 
 
\t const attributeName = "data-src"; 
 
    $("#but").attr(attributeName, url); 
 
    console.log(attributeName + ": " + $("#but").attr(attributeName)); 
 
    $.getScript("https://apis.google.com/js/platform.js"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="but" class="g-savetodrive" data-src="/test.pdf" data-filename="test.txt" data-sitename="TryItOut.Inc"> 
 
</div>

相關問題