2014-02-20 4 views
2

Я создаю клиентскую часть CSV и помещаю ее в Blob, а затем создаю URL-адрес объекта.Возможно ли использовать клиентский код blob для сохранения на Google Диске?

То, что я пытаюсь выполнить, это создать этот URL-адрес, а затем сохранить файл на Google Диск. Я использую кнопку «Сохранить на диск» в этом примере, но, похоже, даже не загружает кнопку сохранения, если я не отключу «blob: http:», и в этом случае он будет правильно загружать кнопку, но это не действительный файл.

Возможно ли сохранить файл blob на Google Диске?

Вот что мой код выглядит следующим образом:

var data = [["one", "info 1", "additional 1"], ["two", "info 2", "additional 2"]], 
     csvContent = [], output, objectURL; 

    data.forEach(function(infoArray, index) { 
     var dataString = infoArray.join(","); 
     csvContent += index < infoArray.length ? dataString+ "\n" : dataString; 
    }); 

    output = new Blob([csvContent], { type: 'text/csv' }); 
    objectURL = URL.createObjectURL(output); 

    gapi.savetodrive.render('savetodrive-div', { 
     src: objectURL, 
     filename: 'save-to-drive.csv', 
     sitename: 'Example' 
    }); 

Спасибо!

+0

Я хотел бы быть в состоянии сделать это. Я могу сделать это с Dropbox. – frumbert

ответ

0

Данные URI не поддерживаются. См. Здесь: https://developers.google.com/drive/web/savetodrive#customizing_savetodrive_tag_attributes

+0

Когда я смотрю «https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs», он говорит, что URI данных начинаются с 'data:', этой страницы и той, которую вы предоставили , скажите что-нибудь о 'blob:'. Вы сами пробовали? OP спрашивает о 'blob:' URI, я думаю. –

0

Он не работает с UIB «blob:», см. Подробности ниже.

This URL около data URIs ничего не говорит о blob:, а не does this reference about the save to google drive button. Поэтому я должен был попробовать себя с URI blobl:, чтобы быть уверенным.

См. this fiddle.

Ниже приведен фрагмент ниже, за исключением того, что он вызывает ошибку: «Документ изолирован песочницей и отсутствует флаг« allow-same-origin ». когда я попробовал. (Поэтому я включил скрипку URL.)

$(document).ready(function() { 
 
\t var blob = new Blob(["test"], { type: "text/plain" }) 
 
    var url = window.URL.createObjectURL(blob); 
 
\t const attributeName = "data-src"; 
 
    $("#but").attr(attributeName, url); 
 
    console.log(attributeName + ": " + $("#but").attr(attributeName)); 
 
    $.getScript("https://apis.google.com/js/platform.js"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="but" class="g-savetodrive" data-src="/test.pdf" data-filename="test.txt" data-sitename="TryItOut.Inc"> 
 
</div>

 Смежные вопросы

  • Нет связанных вопросов^_^