前提・実現したいこと
GAS(Google)で、アップロードフォームを作成したのですが、
アップロードしたPDFが真っ白になってしまう。
アップロードしたPDFへは文字データは入っている。
この場合は、GASのコードを修正すればよいでしょうか?
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
コードgs
function doGet() {
return HtmlService.createHtmlOutputFromFile('index');
}
function processForm(formObject) {
return DriveApp.getFolderById("1c7p0mifR4S_pyDvY5_4oUpDoWRaX0sW8").createFile(formObject.myFile).getUrl();
/var folder_id = "1c7p0mifR4S_pyDvY5_4oUpDoWRaX0sW8";
var folder = DriveApp.getFolderById(folder_id);
var file = formObject.myFile;
var drive_file = folder.createFile(file);
var file_url = drive_file.getUrl();
return file_url;/
}
index.html
<!DOCTYPE html> <html> <head> <base target="_top"> <script></head> <body> <img src="https://www.orange-cloud7.net/LOGO_A3.jpg" width="300px" /> <h1>××××××××××××××××××××<br>『×××××××××××××××』<br>販売資料アップロードフォーム</h1> <p>販売資料を以下よりアップロードしてください。(10MB以下/PDFもしくは画像のみ)</p> <form id="myForm" onsubmit="handleFormSubmit(this)" onchange="changeSubmitButton()"> <input id="file" name="myFile" type="file" /> <input id="upload" type="submit" value="登録" /> </form> <div id="progress"></div> <div id="output"></div> × <!-- クリップボードにコピーする --> <script> function copyToClipboard() { // コピー対象をJavaScript上で変数として定義する var copyTarget = document.getElementById("copyTarget"); // コピー対象のテキストを選択する copyTarget.select(); // 選択しているテキストをクリップボードにコピーする document.execCommand("Copy"); // コピーをお知らせする //alert("コピーできました! : " + copyTarget.value); } </script> </body> </html>function preventFormSubmit() { var forms = document.querySelectorAll('form'); for (var i = 0; i < forms.length; i++) { forms[i].addEventListener('submit', function(event) { event.preventDefault(); }); } } window.addEventListener('load', preventFormSubmit); /*最初はアップロードボタンを押せないようにしておく*/ document.addEventListener("DOMContentLoaded", function () { document.getElementById("upload").disabled = true; }, false); /*制限サイズ以内のファイルが選択されたらアップロードボタンを押せるようにする*/ function changeSubmitButton() { const len=document.getElementById("file").files.length; const size=document.getElementById("file").files[0].size; const maxSize=1024 * 1024 * 10;//10MB const uploadButton=document.getElementById("upload"); if (len > 0 && size < maxSize) { uploadButton.disabled = false; /*画像以外のファイルがアップロードされたらエラーをだす*/ var Filename = document.getElementById("file").files[0].name; var type = Filename.split('.'); var reString = /jpg|jpeg|png|gif|pdf/i; if(!type[1].match(reString)){ var div = document.getElementById('progress'); div.innerHTML='アップロードできるファイルはPDFか画像のみです(jpg/png/gif/pdf)'; uploadButton.disabled = true; }else{ var div = document.getElementById('progress'); div.innerHTML='このファイルはアップロードできます。「登録」ボタンを押してアップロードしてください。'; uploadButton.disabled = false; } } else{ uploadButton.disabled = true; var div = document.getElementById('progress'); div.innerHTML='アップロードできるサイズは10MB以下です'; } } // Prevent forms from submitting. function preventFormSubmit() { var forms = document.querySelectorAll('form'); for (var i = 0; i < forms.length; i++) { forms[i].addEventListener('submit', function(event) { event.preventDefault(); }); } } window.addEventListener('load', preventFormSubmit); function handleFormSubmit(formObject) { document.getElementById("upload").disabled = true; var div = document.getElementById('progress'); div.innerHTML='アップロード中...'; //アップロード成功した場合はupdateUrl()実行 google.script.run.withSuccessHandler(updateUrl).processForm(formObject); mytext = formObject.myText; } function updateUrl(url) { var div = document.getElementById('output'); div.innerHTML = '<br>アップロードに成功しました<br><br><br>資料URL: <input type="text" id="copyTarget" value="' + url + '" size="80" readonly> <button onclick="copyToClipboard()">コピーする</button><br><br><br><b>●上記「資料URL」をコピーし、「注文ページ作成」ページの「販売内容URL」に貼り付けてください。</b><br><br><br><img src="https://sales.××××××××××××××××××××××××.net/support/wp-content/uploads/screenshot-osl-dev-mo.os7_.biz-2021.11.11-12_03_26.png" width="700px"/> '; var div = document.getElementById('progress'); div.innerHTML=''; } </script>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー