我正在生成CSV客户端并将其放入Blob中,然后创建对象URL。
我正在尝试完成的是生成此blob网址,然后将该文件保存到Google云端硬盘。我在这个例子中使用了Save to Drive按钮,但它似乎甚至没有加载保存按钮,除非我剥离“blob:http:”,在这种情况下它会看起来正确加载按钮但这不是一个有效的文件。
甚至可以将blob文件保存到Google云端硬盘吗?
以下是我的代码:
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 :(得分:1)
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'
});
答案 1 :(得分:0)
不支持数据URI。看这里: https://developers.google.com/drive/web/savetodrive#customizing_savetodrive_tag_attributes
答案 2 :(得分:0)
它不适用于'blob:'URI,请参阅下面的详细信息。
关于data URIs
的{p> This URL没有特别说明blob:
和does this reference about the save to google drive button。因此,我必须使用blobl:
URI自行尝试。
请参阅this fiddle。
下面的代码段是相同的,除了它导致错误说“文件是沙箱并且没有'allow-same-origin'标志。”当我尝试它。 (因此我加入了小提琴网址。)
$(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>