我会将文档保存到谷歌驱动器,这个文档是在我的网络应用程序的客户端实时创建的,使用谷歌驱动器保存按钮,但根本不起作用。
这是一个保存我从那里获取的静态文件的示例:https://developers.google.com/drive/v3/web/savetodrive并且正常工作
<script src="https://apis.google.com/js/platform.js" async defer></script>
<div class="g-savetodrive"
data-src="//example.com/path/to/myfile.pdf"
data-filename="My Statement.pdf"
data-sitename="My Company Name">
</div>
是的,只是它有效,
但如果我尝试使用数据或blob字段设置data-src ,则无法保存或出错
<div class="g-savetodrive"
data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAKCAYAAABmBXS+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAjSURBVChTY/y/7uR/BgKACUrjBSNc0f8AU/yKQAp+/vzJAABYKgl8odPr0gAAAABJRU5ErkJggg=="
data-filename="My Statement.pdf"
data-sitename="My Company Name">
</div>
在此处试用“直播”版本: https://jsbin.com/horopel/edit?html,js,console,output
blob是同样的事情,不起作用,任何解决方案?如果Reactjs解决方案更好,但欢迎任何想法。答案 0 :(得分:1)
答案: save button不支持blob源。
直接来自您已关联的documentation
不同服务器上的文件请求受Cross Origin约束 资源共享(CORS)限制。
1. data-src URL可以从与托管按钮的域相同的域,子域和协议提供。
确保在页面和数据之间使用匹配的协议 源。
在http和https同一页面提供服务时提供文件, 指定没有协议的资源,例如 data-src =“// example.com/files/file.pdf”,它使用适当的 协议基于托管页面的访问方式。
如您所见,它必须是一个文件。你不能只发送一个文件本身的字符串值。您是否考虑通过Google drive API直接进行文件上传流式传输?