2

我正在生成一个 CSV 客户端并将其放入 Blob,然后创建一个对象 URL。

我试图完成的是生成这个 blob URL,然后将文件保存到 Google Drive。我在这个例子中使用了保存到驱动器按钮,但它似乎甚至没有加载保存按钮,除非我去掉“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'
    });

谢谢!

4

3 回答 3

2
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'
});

这是你需要的吗?信用:http: //qaru.site/questions/4397835/is-it-possible-to-use-client-side-generated-blob-url-to-save-to-google-drive

于 2019-05-06T08:40:53.580 回答
0

不支持数据 URI。见这里: https ://developers.google.com/drive/web/savetodrive#customizing_savetodrive_tag_attributes

于 2014-11-30T13:46:43.313 回答
0

它不适用于 'blob:' URI,请参阅下面的详细信息。

这个关于的URLdata URIs没有特别说明blob:,也没有关于保存到谷歌驱动器按钮的参考。因此,我必须自己尝试使用blobl:URI 来确定。

看到这个小提琴

下面的代码片段是相同的,除了它会导致错误提示“文档已被沙盒化并且缺少 'allow-same-origin' 标志”。当我尝试它时。(因此我包含了小提琴 URL。)

$(document).ready(function() {
	var blob = new Blob(["test"], { type: "text/plain" })
  var url = window.URL.createObjectURL(blob);
	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>

于 2017-09-20T10:12:41.863 回答