前提・実現したいこと
GASをウェブアプリケーションとして公開し、htmlserviceで表示したページからファイル選択しgoogle driveに画像をアップロードしたいです。
発生している問題・エラーメッセージ
データ自体はアップロードされるものの、drive内の画像は破損してしまっているのか表示できませんでした。
goodle driveで開いた際のエラーメッセージ プレビューできません。 windows10のペイントで開いた際のエラーメッセージ このファイルは読み取れません。 このビットマップファイルは無効であるか、または現在サポートされていない形式です。
該当のソースコード
gs
1function doGet() { 2 return HtmlService.createHtmlOutputFromFile('index'); 3} 4 5function processForm(formObject) { 6 var formBlob = formObject.myFile; 7 const folderID='xxxxxxxxxxxxxxxxxxxxxxxx'; 8 var uploadFolder = DriveApp.getFolderById(folderID); 9 var driveFile = uploadFolder.createFile(formBlob);//アップロード 10 return driveFile.getUrl(); 11}
html
1<!DOCTYPE html> 2<html> 3 <head> 4 <base target="_top"> 5 <script> 6 // Prevent forms from submitting. 7 function preventFormSubmit() { 8 var forms = document.querySelectorAll('form'); 9 for (var i = 0; i < forms.length; i++) { 10 forms[i].addEventListener('submit', function(event) { 11 event.preventDefault(); 12 }); 13 } 14 } 15 window.addEventListener('load', preventFormSubmit); 16 17 function handleFormSubmit(formObject) { 18 google.script.run.withSuccessHandler(updateUrl).processForm(formObject); 19 } 20 function updateUrl(url) { 21 var div = document.getElementById('output'); 22 div.innerHTML = '<a href="' + url + '">Got it!</a>'; 23 } 24 </script> 25 </head> 26 <body> 27 <form id="myForm" onsubmit="handleFormSubmit(this)"> 28 <input name="myFile" type="file" /> 29 <input type="submit" value="Submit" /> 30 </form> 31 <div id="output"></div> 32 </body> 33</html> 34
試したこと
試した画像の形式はjpg gif png bmpで、すべて同様の症状です。
ダウンロードして開こうとしてもエラーとなりました。
https://saitodev.co/article/Google_Apps_Script%E3%81%AEHTML_Service%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%82%92%E8%A1%8C%E3%81%86
回答1件
あなたの回答
tips
プレビュー