Сохранение на диске Google не работает (API Google диска)

Я пытаюсь создать веб-сайт, который сохранит кошку в учетной записи пользователя, и пробовал это:

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

Значок сохранения появляется, но не сохраняется на диск.

Почему?

Спасибо


person samrobbins    schedule 01.07.2014    source источник
comment
см. developers.google.com/drive/web/savetodrive#cors.   -  person Rachel Gallen    schedule 01.07.2014
comment
в противном случае что-то не так с путем к файлу - это также вызовет эту ошибку   -  person Rachel Gallen    schedule 01.07.2014
comment
Все равно не работает address = samrobbins.125mb.com/googledrive.html   -  person samrobbins    schedule 01.07.2014
comment
проблема может заключаться в том, что он превышает 2 МБ, обратитесь к документации, попробуйте файл меньшего размера.   -  person Rachel Gallen    schedule 01.07.2014
comment
сервер должен разрешить cors - см. отредактированный ответ   -  person Rachel Gallen    schedule 01.07.2014
comment
Теперь он дает мне: ошибка HTTP с ошибкой загрузки (6)   -  person samrobbins    schedule 01.07.2014
comment
извините, я обедал, поделитесь ссылкой еще раз   -  person Rachel Gallen    schedule 01.07.2014
comment
какие права доступа к файлу установлены на вашем сервере для файла? они должны быть 777, чтобы поделиться   -  person Rachel Gallen    schedule 01.07.2014
comment
ошибка http 6 не может разрешить имя хоста - проверьте, что домен не отключен, и проверьте подключение к Интернету, возможно, ваш сервер не работает   -  person Rachel Gallen    schedule 01.07.2014


Ответы (2)


Если вы хотите загрузить локальный файл с формой входного файла и/или без 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>
person Eduardorq    schedule 08.03.2017

попробуйте явный рендеринг: код из 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>

URL-адрес data-src может обслуживаться из другого домена, но ответы от HTTP-сервера должны поддерживать запросы HTTP OPTION и включать следующие специальные заголовки HTTP:

 Access-Control-Allow-Origin: *
 Access-Control-Allow-Headers: Range
 Access-Control-Expose-Headers: Cache-Control, Content-Encoding, Content-Range
person Rachel Gallen    schedule 01.07.2014
comment
Что мне нужно поместить в example.com вверху? - person samrobbins; 01.07.2014
comment
@Sam ваш собственный веб-адрес - person Rachel Gallen; 01.07.2014
comment
@ Сэм, ты вошел в Google? - person Rachel Gallen; 01.07.2014
comment
@Sam да адрес хостинга - person Rachel Gallen; 01.07.2014