2017-02-02 9 views
1

Я хочу, чтобы http отправил изображение из html-формы в веб-приложение сценария приложений Google, а затем добавьте это изображение в Google-привод.Как преобразовать jpg или png в blob в скрипт приложения Google?

мой сценарий приложений ниже.

function doPost(e){ 
    var date = new Date(); 
    var timestamp = date.toString() 
    var adress = e.parameter.adress; 
    var cost = e.parameter.cost; 
    var item = e.parameter.item; 
    var check = e.parameter.image; 

    //add file to drive 
    var destination_id = "some ID" 
    var destination = DriveApp.getFolderById(destination_id); 
    destination.createFile(check); 
}; 

при выполнении, он возвращает ошибку; cannot find method: createFile(String)

Я думаю, это потому, что «проверка» - это строка, и я хочу преобразовать представленное изображение в Blob. Как я могу это сделать?

+0

В этом сообщении описывается, как загрузить изображение в GAS: [GAS-upload-image] (http://stackoverflow.com/questions/21593249/uploading-images-to-a-google-spreadsheet-using-apps- скрипт) –

ответ

2

Как насчет следующего образца? Добавлено «getAs()». https://developers.google.com/apps-script/reference/drive/file#getAs(String)

Это очень простой скрипт html и gas, который я использовал для этого теста.

HTML: Это имя файла "form.html".

<form> 
    <input type="file" name="imageFile"> 
    <input type="button" value="ok" onclick="google.script.run.upload(this.parentNode)"> 
</form> 

GAS сценарий:

function doGet() { 
    return HtmlService.createHtmlOutputFromFile('form.html'); 
} 

function upload(e) { 
    var destination_id = "some ID"; 
    var img = e.imageFile; 
    var contentType = "image/jpeg"; 
    var destination = DriveApp.getFolderById(destination_id); 
    var img = img.getAs(contentType); 
    destination.createFile(img); 
} 

Для этого примера сценария, если вы хотите сохранить в виде файла в формате JPEG, пожалуйста, измените 'CONTENTTYPE' от 'изображения/PNG' до 'изображений/JPEG'. Когда вы загружаете файл png для contentType 'image/jpeg', файл png преобразуется в jpeg-файл с помощью 'getAs()'.

+0

Спасибо за помощь. Однако, когда я выполнил ваш код, у меня получилась ошибка: не удается найти функцию getAs для Object submitted_image.png. Когда я посмотрел на «проверку типа», это была «строка». Я думаю, что это проблема. – Katshun0307

+0

Вы использовали его в качестве сценария приложений Google на Google Диске? Если да, могу я спросить вас о методе запроса? Как вы запрашиваете этот «doPost»? Я думаю, что данные файла, полученные методом запроса, имеют проблему для ошибки. Потому что, когда я тестирую почтовый запрос с использованием «getAs()», он отлично работает. – Tanaike

+0

<тип скрипта = "текст/JavaScript"> \t \t функция представить() { \t \t \t document.getElementById ("FormID") представляет(). \t \t} \t \t <форма ID = "FormID" действие = "https://script.google.com/macros/s/hogehoge/exec" метод = "пост" целевых = "fake_target"> \t // входы // \t – Katshun0307