0

我會將文件保存到谷歌驅動器,這個文件是在我的網絡應用程序的客戶端實時創建,使用谷歌驅動器保存按鈕,但根本不起作用。無法使用「保存按鈕(通過谷歌驅動器)」與數據或blob來源

這是一個例子保存靜態文件我已經從那裏取: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> 

,並是簡單地將它的工作原理,

如果我嘗試設置數據-SRC數據或BLOB字段,它無法保存或得到一個錯誤

<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> 

這裏試試「live」版本:https://jsbin.com/horopel/edit?html,js,console,output

blob是一樣的東西,不行,任何解決辦法?更好的是如果Reactjs的解決方案,但任何想法都歡迎。

回答

1

答案:save button不支持blob源代碼。

直接從documentation已鏈接

請求在不同的服務器上的文件都受到跨源 資源共享(CORS)的限制。

1. data-src URL可以與託管該按鈕的域相同的域,子域和協議提供服務。

請務必使用頁面和數據源之間的匹配協議。

爲了在http和https服務於相同頁面時提供文件,請指定 data-src =「// example.com/files/file.pdf」之類的協議的資源,它使用根據託管頁面的訪問方式確定合適的 協議。

正如你所看到的,它必須是一個文件。你不能只發送一個文件本身的字符串值。你是否考慮過直接通過Google drive API做文件上傳的流?

+0

也許你不明白的問題,問題是這個https://jsbin.com/horopel/edit?html,js,console,output閱讀到目前爲止的帖子結束,問題是如何把數據編碼64作爲數據鏈接在src – LXG

+0

你可能需要將文件保存到用戶PC或其他東西(我並不是所有人都確信它可以)。你不能發送編碼爲64的數據到data-src它不是CORS http://www.w3.org/TR/cors/你發送給data-src的任何東西必須是CORS – DaImTo

+0

否,圖像這個場景,1)用戶畫一些畫布,2)這個畫布轉換爲enc64 3)這個文件保存到谷歌驅動器...我希望這解釋更好的問題thx – LXG

相關問題