谷歌硬盘保存到不工作(谷歌驱动器API)

时间:2014-07-01 16:50:30

标签: html google-drive-api google-drive-realtime-api

我正在尝试创建一个网站,将猫存入用户的帐户,并尝试过这样做:

<script src="https://apis.google.com/js/platform.js"></script>
<div class="g-savetodrive"
   data-src="http://example.com/pug-snores.mp3"
   data-filename="pug-snores.mp3"
   data-sitename="A Snoring Pug">
</div>

保存图标显示但不保存到驱动器。

为什么?

由于

2 个答案:

答案 0 :(得分:0)

尝试显式渲染:来自google javascript api

的代码
<!DOCTYPE html>
<html>
  <head>
    <title>Save to Drive Demo: Explicit Render</title>
    <link rel="canonical" href="http://www.example.com">
    <script src="https://apis.google.com/js/platform.js">
      {parsetags: 'explicit'}
    </script>
  </head>
  <body>
    <a href="javascript:void(0)" id="render-link">Render the Save to Drive button</a>
    <div id="savetodrive-div"></div>
    <script>
      function renderSaveToDrive() {
        gapi.savetodrive.render('savetodrive-div', {
          src: '//example.com/path/to/myfile.pdf',
          filename: 'My Statement.pdf',
          sitename: 'My Company Name'
        });
      }
      document.getElementById('render-link').addEventListener('click', renderSaveToDrive);
    </script>
  </body>
</html>

data-src URL可以从另一个域提供,但来自HTTP服务器的响应需要支持HTTP OPTION请求并包含以下特殊HTTP头:

 Access-Control-Allow-Origin: *
 Access-Control-Allow-Headers: Range
 Access-Control-Expose-Headers: Cache-Control, Content-Encoding, Content-Range

答案 1 :(得分:0)

如果你想上传一个带有输入文件格式和/或没有php lib的本地文件,那么......

<!DOCTYPE html>
<html>
  <head>
    <title>Save to Drive Demo: Explicit Render</title>
    <script src="https://apis.google.com/js/platform.js" async defer></script>
  </head>
  <body>
    <form id="GDrive" name="GDrive" enctype="multipart/form-data" method = "post">
      <input type="file" id="file" name="file" onChange="renderSaveToDrive('savetodrive-div', this.files[0].name,'GDrive');"><div id="savetodrive-div"></div>
    </form>
    <script>
        function renderSaveToDrive(namediv, namefile, idfrm) {
            window.___gcfg = {
                lang: 'es-ES',
                parsetags: 'explicit'
            };
            var xhr = new XMLHttpRequest();
            var fd = new FormData(document.forms.namedItem(idfrm));
            fd.append("file_new_name", namefile);
            xhr.open("POST", location.href);
            xhr.send(fd);       
            gapi.savetodrive.render(namediv, {
              src: namefile,
              filename: namefile,
              sitename: 'GDrive Demo: Explicit Render'
            });
        }
    </script>
  </body>
</html>