วันเสาร์ที่ 4 มีนาคม พ.ศ. 2560

การสร้าง form สำหรับ uploadfile

การจะ upload file ของคนที่ไม่ได้มี login ของ google หรือ เราอาจไม่รู้ว่า login นั้นเป็นใคร ให้เรานั้นเป็นเรียนที่ยากอยู่พอสมควร แต่มีวิธีที่จะทำให้ใครก็ได้ที่จะส่งไฟล์ให้เราได้โดยตรง และสามารถบันทึกข้อมูลผู้ส่งโดยที่เขาไม่ต้อง login ได้ด้วยนี้เป็นเพียงตัวอย่างหนึ่งเท่านั้น
1.สร้าง folder ใน gdrive และแชร์ให้ทุกคนสามารถแก้ไขได้(ชื่อ test)
2.สร้าง โครงงาน script.google ขึ้นมาประกอบด้วย 2 ไฟล์
  2.1 ไฟล์จัดการการทำงาน ชื่อ code.gs
  2.2 ไฟล์หน้า upload file ชื่อ Form.html
code.gs->
function doGet(e) {
  return HtmlService
    .createHtmlOutputFromFile('Form.html')
    .setTitle("Google File Upload");
}

function uploadFileToGoogleDrive(data, file, name, email) {

  try {

    var dropbox = "test";// folderที่สร้าง
    var folder, folders = DriveApp.getFoldersByName(dropbox);

    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(dropbox);
    }

    var contentType = data.substring(5,data.indexOf(';')),
        bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,')+7)),
        blob = Utilities.newBlob(bytes, contentType, file);

    folder.createFolder([name, email].join(" ")).createFile(blob);//// สร้าง folder ใต้อันหลักเป็น ตัวแปรชื่อ และ email แล้วเอาไฟล์ไว้ใน

    return "OK";

  } catch (f) {
    return f.toString();
  }

}
 Form.html->
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
<!-- Text input fields -->
<input id="name" type="text" placeholder="Your Name"> //สำหรับรับชื่อ
<input id="email" type="email" placeholder="Your Email">//สำหรับรับemail
<!-- File upload button -->
<input id="file" type="file">
<!-- Form submit button -->
<button onclick="submitForm(); return false;">Submit</button>
<!-- Show Progress -->
<div id="progress"></div>

</body>

<!-- Add the jQuery library -->
<script src="https://code.jquery.com/jquery.min.js"></script>

<script>

  var file,
      reader = new FileReader();

  // Upload the file to Google Drive
  reader.onloadend = function(e) {
    google.script.run
      .withSuccessHandler(showMessage)
      .uploadFileToGoogleDrive(
         e.target.result, file.name,
         $('input#name').val(),
         $('input#email').val()
      );
  };

  // Read the file on form submit
  function submitForm() {
    file = $('#file')[0].files[0];
    showMessage("Uploading file..");
    reader.readAsDataURL(file);
  }

  function showMessage(e) {
    $('#progress').html(e);
  }

</script>
</html>
3.save ทั้งหมด แล้ว ไปที่แผยแพร่ เลือก ใช้งานเป็น app web จด url ที่ได้ไปใช้งาน

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

โปรแกรม ปิดโปรแกรมอื่น และดูโปรแกรมที่ทำงาน

โปรแกรมนี้ใช้ภาษา python 2.7 (ไม่เคยเขียนเพราะปกติไม่ชอบภาษา script แต่ต้องใช้งานบางอย่าง) import subprocess import re import os white_l...