2014-02-20 88 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>

相关问题