سؤال

كيف تسمح المشاهدين إلى استخدام نماذج Google لتحميل بعض الملفات إلى شكل وحفظه إلى Google Drive ؟

أنا أبحث عن كامل على سبيل المثال:يجب أن أقول ما البرمجية إضافة إلى المثال Google شكل مصدر HTML.كيفية استخدام Google Apps Script لتحميل المشاهد الملفات إلى Google Drive الحساب ؟

هل كانت مفيدة؟

المحلول

تحديث:نماذج Google يمكنك الآن تحميل الملفات.هذا الجواب كان نشر من قبل جوجل أشكال القدرة على تحميل الملفات.

هذا الحل لا تستخدم نماذج Google.هذا هو مثال على استخدام أحد تطبيقات البرنامج النصي التطبيق على شبكة الإنترنت, التي هي مختلفة جدا من جوجل النموذج.التطبيق على شبكة الإنترنت هو في الأساس موقع على شبكة الانترنت, ولكن لا يمكنك الحصول على اسم المجال لذلك.هذا ليس تعديل جوجل النموذج الذي لا يمكن القيام به لتحميل الملف.

ملاحظة:لدي مثال سواء واجهة المستخدم خدمة HTML الخدمة ، ولكن يجب إزالة واجهة المستخدم الخدمة سبيل المثال ، لأن واجهة المستخدم تم إيقاف خدمة.

ملاحظة:فقط رمل الإعداد المتاحة الآن IFRAME.انا كنت ترغب في استخدام onsubmit السمة في البداية شكل الوسم: <form onsubmit="myFunctionName()">, قد يسبب شكل أن تختفي من الشاشة بعد تقديم النموذج.

إذا كنت تستخدم الوضع الأصلي الخاص بك تحميل ملف التطبيق على شبكة الإنترنت قد لا تكون العامل.مع الوضع الأصلي ، تقديم النموذج لن تحتج السلوك الافتراضي من الصفحة تختفي من الشاشة.إذا كنت تستخدم الوضع الأصلي الخاص بك تحميل الملف شكل لم يعد يعمل, ثم قد يكون استخدام "إرسال" نوع زر.أنا أعتقد أنه قد يكون أيضا باستخدام "جوجل.البرنامج النصي.تشغيل" جانب العميل API لإرسال البيانات إلى الخادم.إذا كنت تريد الصفحة أن تختفي من الشاشة بعد تقديم النموذج, يمكنك أن تفعل ذلك بطريقة أخرى.ولكن قد لا تهتم ، أو حتى تفضل أن يكون صفحة البقاء على الشاشة.اعتمادا على ما تريد, سوف تحتاج إلى تكوين إعدادات المدونة بطريقة معينة.

إذا كنت تستخدم "إرسال" نوع زر ترغب في الاستمرار في استخدام ذلك ، يمكنك محاولة إضافة event.preventDefault(); إلى التعليمات البرمجية الخاصة بك في تقديم معالج الحدث وظيفة.أو سوف تحتاج إلى استخدام google.script.run العميل API.


نموذج مخصص لتحميل الملفات من كمبيوتر المستخدمين محرك, محرك جوجل الخاص بك يمكن أن تنشأ مع تطبيقات النصي HTML الخدمة.هذا المثال يتطلب كتابة البرنامج, ولكن لقد توفير كافة التعليمات البرمجية الأساسية هنا.

هذا المثال يظهر نموذج الرفع مع Google Apps النصي HTML الخدمة.

ما تحتاج

  • Google
  • Google Drive
  • Google Apps Script - وتسمى أيضا جوجل النصي

Google Apps Script

هناك طرق مختلفة في نهاية المطاف في Google Apps Script محرر التعليمات البرمجية.

  • تحميل تطبيقات النصي مباشرة من عنوان موقع الإنترنت: https://script.google.com
  • فتح جوجل ورقة أولا ، ثم التطبيقات المفتوحة النصي
  • انتقل إلى Google Drive ، ثم فتح تطبيقات النصي: https://drive.google.com/drive/#my-drive
  • انتقل إلى Google Drive ، ثم انقر فوق على التطبيقات النصي ملف المشروع
  • التطبيقات المفتوحة النصي من محرر مستندات جوجل
  • الخ

وأذكر هذا لأنه إذا كنت لا تعلم من كل الاحتمالات ، فإنه يمكن أن يكون مربكا قليلا.Google Apps السيناريو يمكن أن تكون جزءا لا يتجزأ في موقع جوجل, ورقة, مستندات أو أشكال أو استخدامها باعتبارها تقف وحدها التطبيق.

تطبيقات النصي نظرة عامة

هذا المثال هو "المستقلة" التطبيق مع HTML الخدمة.

HTML خدمة إنشاء تطبيق ويب باستخدام HTML, CSS و جافا سكريبت

Google Apps Script فقط نوعين من الملفات داخل Project:

  • السيناريو
  • HTML

ملفات البرامج النصية لديك .gs تمديد.على .gs شفرة برمجية من جانب الخادم مكتوب في جافا سكريبت ، مزيج من جوجل API الخاصة.

  • نسخ و لصق التعليمات البرمجية التالية
  • حفظه
  • إنشاء أول اسمه الإصدار
  • نشره
  • تعيين الأذونات

    و يمكنك البدء في استخدامه.

تبدأ من خلال:

  • إنشاء مشروع جديد فارغ في تطبيقات البرنامج النصي
  • نسخ ولصق في هذا الكود:

تحميل ملف HTML الخدمة:

التعليمات البرمجية.gs الملف (تم إنشاؤه بشكل افتراضي)

//For this to work, you need a folder in your Google drive named:
// 'For Web Hosting'
// or change the hard coded folder name to the name of the folder
// you want the file written to

function doGet(e) {
  return HtmlService.createTemplateFromFile('Form')
    .evaluate() // evaluate MUST come before setting the Sandbox mode
    .setTitle('Name To Appear in Browser Tab')
    .setSandboxMode();//Defaults to IFRAME which is now the only mode available
}

function processForm(theForm) {
  var fileBlob = theForm.picToLoad;

  Logger.log("fileBlob Name: " + fileBlob.getName())
  Logger.log("fileBlob type: " + fileBlob.getContentType())
  Logger.log('fileBlob: ' + fileBlob);

  var fldrSssn = DriveApp.getFolderById(Your Folder ID);
    fldrSssn.createFile(fileBlob);

  return true;
}

إنشاء ملف html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <h1 id="main-heading">Main Heading</h1>
    <br/>
    <div id="formDiv">

      <form id="myForm">

        <input name="picToLoad" type="file" /><br/>
        <input type="button" value="Submit" onclick="picUploadJs(this.parentNode)" />

      </form>
    </div>


  <div id="status" style="display: none">
  <!-- div will be filled with innerHTML after form submission. -->
  Uploading. Please wait...
</div>

</body>
<script>

function picUploadJs(frmData) {

  document.getElementById('status').style.display = 'inline';

  google.script.run
    .withSuccessHandler(updateOutput)
    .processForm(frmData)
};
  // Javascript function called by "submit" button handler,
  // to show results.

  function updateOutput() {

    var outputDiv = document.getElementById('status');
    outputDiv.innerHTML = "The File was UPLOADED!";
  }

</script>
</html>

هذا هو عمل كامل سبيل المثال.فقد اثنين من الأزرار واحد <div> عنصر لذا لن ترى كثيرا على الشاشة.إذا كان .gs السيناريو هو الناجح الحقيقي هو عاد ، onSuccess وظيفة يعمل.على onSuccess وظيفة (updateOutput) يحقن HTML الداخلية في div عنصر مع رسالة "تم تحميل الملف!"

  • حفظ الملف تعطي المشروع اسم
  • باستخدام القائمة: File, Manage Version ثم حفظ النسخة الأولى
  • Publish, Deploy As Web App ثم تحديث

عند تشغيل البرنامج النصي أول الوقت ، وسوف تطلب أذونات لأنه حفظ الملفات إلى القرص الخاص بك.بعد منح الأذونات في المرة الأولى ، تطبيقات السيناريو يتوقف و لن استكمال تشغيل.لذلك تحتاج إلى تشغيل مرة أخرى.السيناريو لن نسأل عن الأذونات مرة أخرى بعد المرة الأولى.

تطبيقات Script file سوف تظهر في Google Drive.في Google Drive يمكنك تعيين أذونات الذين يمكنهم الوصول إلى و استخدام البرنامج النصي.تشغيل البرنامج النصي ببساطة عن طريق توفير رابط المستخدم.استخدم الرابط فقط كما يمكنك تحميل صفحة ويب.

مثال آخر على استخدام HTML خدمة يمكن أن ينظر إليه على هذا الرابط هنا على ستاكوفيرفلوو:

تحميل ملف HTML الخدمة

ملاحظات حول إهمال UI الخدمة:

هناك فرق بين واجهة المستخدم الخدمة ، واجهة المستخدم getUi() طريقة جدول الصف (أو فئة أخرى) تطبيقات النصي واجهة المستخدم خدمة إهمال في ديسمبر.11, 2014.وسوف تستمر في العمل لفترة من الوقت ، ولكن يتم تشجيع لك لاستخدام HTML الخدمة.

جوجل الوثائق - UI الخدمة

على الرغم من واجهة المستخدم خدمة هو انتقدت هناك getUi() طريقة جدول الصف لإضافة القوائم المخصصة, الذي هو لا deprecated:

جدول الصف - الحصول على واجهة المستخدم طريقة

وأذكر هذا لأنه يمكن أن يكون مربكا لأن كلاهما استخدام المصطلحات واجهة المستخدم.

واجهة المستخدم الأسلوب بإرجاع Ui نوع الإرجاع.

يمكنك إضافة HTML إلى واجهة المستخدم في خدمة ولكن لا يمكنك استخدام <button>, <input> أو <script> الوسم في HTML مع واجهة المستخدم الخدمة.

هنا هو ارتباط إلى مشترك تطبيقات النصي التطبيق على شبكة الإنترنت الملف مع مدخلات النموذج:

ملف مشترك - نموذج الاتصال

نصائح أخرى

اعتبارا من أكتوبر 2016، أضافت Google نوع سؤال تحميل الملفات في نماذج Google الأصلية، ولا يحتاج إلى برنامج نصي تطبيقات Google Apps. انظر الوثائق .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top