samrobbins
samrobbins

Reputation: 501

Google drive save to not working (Google drive api)

I am trying to make a website that will save a cat into the account of the user and have tried this:

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

The save icon shows up but it does not save to the drive.

Why?

Thanks

Upvotes: 0

Views: 1039

Answers (2)

Eduardorq
Eduardorq

Reputation: 113

If you want upload a local file with input file form and/or without php lib would be ...

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

Upvotes: 1

Rachel Gallen
Rachel Gallen

Reputation: 28573

try the explicit render: code from the 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>

The data-src URL can be served from another domain but the responses from the HTTP server needs to support HTTP OPTION requests and include the following special HTTP headers:

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

Upvotes: 1

Related Questions