検索

ホームページ  >  に質問  >  本文

Google Apps Script を使用して、(Google フォームを使用せずに) ファイルを Google ドライブに直接アップロードします

したがって、基本的にタスクは非常に単純ですが、私の問題に対する実行可能な解決策は見つかりませんでした。私の Web サイト (現在は localhost) に巨大なアップロード スクリプトがありますが、すべての複雑さを必要なものだけに減らしましょう。

つまり、Google App Script を使用して 1 つのファイルを Google ドライブにアップロードし、その URL を受け取って var に保存し、後でその情報を関数で使用できるようにしたいと考えています。

問題は、Web サイトにすでにフォームがあることです。追加の HTML として script.google .com 内にフォームを追加したくないのですが、それをユーザーに送信します。入力は Google App Script に転送され、Google ドライブにアップロードされ、var に保存できる Web サイトへの URL が返されます。

今の問題は、すべてをまとめられないことです。

これは私のウェブサイトのフォームです (簡略化):

リーリー

では、Google ドライブに情報をアップロードして結果を取得するにはどうすればよいでしょうか? iFrame などを使用せずに Google App Script からデータをプッシュするにはどうすればよいですか?

###ありがとう!

**** HTML が script.google .com にある場合の実際の例 ****

GS

リーリー apps.googlescript の

html

リーリー

提案どおり、ここでプロセスを説明します。

Web サイト www.example.com には、テキスト入力フィールドとファイル フィールドのあるフォームがあります。画像を入力し、それを例としてみましょう。ここで、送信を押すと、oAuth を使用せずに画像を Google ドライブにアップロードし (そのため、ここでは Google App Script が必要です)、テキスト フィールドに入力した名前を付けます。アップロードが完了したら、フォームでその情報を引き続き使用できるように、Google ドライブ画像の URL を Web サイトに返したいと考えています。返された URL を var に保存し、後でデータベースに保存したいと考えています。そのため、結果を自分の Web サイトに返す必要があります。

したがって、解決策は次のとおりです:

Web サイト上のフォームに情報を入力します -> Google アプリ スクリプトにリダイレクトします: Web サイトのフォーム フィールドの情報を取得し、ファイルを Google ドライブにアップロードし、テキスト入力エントリという名前を付けます -> Google ドライブの URL を次のように変更します最終結果 -> 最終 URL 結果を Web サイトにリダイレクトします -> URL 結果を var に保存し、Web サイト上の関数からの操作を続行します -> 最後に var の情報をデータベースに保存します ->仕上げる ###

------------------------------------------------- - - - - - - - - - - 編集: - - - - - - - - - ###

@Tanaike のおかげで、チャレンジの目標に近づいたので、どこで行き詰まったかを確認するために、今質問をコピーしています:

あなたの例のスクリプトを使用してフォームを取得しました:

リーリー

Google スクリプトの場合:

リーリー

今、何かをアップロードしようとすると、次のエラーが表示されます: CORS ポリシーを取得できませんでした。そこで、この部分を次のように変更し、no cors モードを追加しました:

リーリー

これはうまくいきます。ファイルをアップロードしようと 2 回目に試行すると、次のエラーが発生します。

構文エラー: 予期しない入力の終わりです

そこで、この行を変更し、res.json から括弧を削除しました。 リーリー 実際に有効なファイルをアップロードする 3 回目の試行では、コンソールの結果は次のようになります:

リーリー

しかし、Google ドライブにはアップロードされたファイルがありません。どこかで何かが欠けています。フォルダーを作成してそこにファイルを置くとよいかもしれません。

ああ、もう 1 つの情報: Google アプリ スクリプトで doPost 関数を実行すると、次のように表示されます:

リーリー

編集 2----------------------------------------------- --- --------

https://drive.google .com/uc?export=download&id=

fileId

をコードに追加しましたが、すべて正常に動作します。ファイルをアップロード中です。

ファイル test.mp3 をアップロードし、testdata という名前を付けるとします。 これが私たちが受け取ったものです:

リーリー

ファイルの URL を開くと、ブラウザはファイルをダウンロードしますが、その名前は testdata.mp3 ではなく testdata です。ファイルタイプの末尾がありません。

2 番目のタスク: リンクをクリックしたら、ブラウザでファイルを開きます。たとえば、mp3 ファイルの場合は、次のように Web ビューでサウンドを再生します。 https: / /files.freemusicarchive .org/storage-freemusicarchive-org/music/Creative_Commons/Dead_Combo/CC_Affiliates_Mixtape_1/Dead_Combo_-_01_-_Povo_Que_Cas_Decalo.mp3

ご指導いただければ幸いです。 ######
P粉785905797P粉785905797313日前564

全員に返信(2)返信します

  • P粉512729862

    P粉5127298622024-01-22 14:32:10

    https://stackoverflow.com/a/63391363/1585523 回答には役立つヒントがたくさんあります。共有していただきありがとうございます。 POST ファイルに加えて、

    も使用できます。

    クライアント上:index.html

    リーリー

    サーバー上: Code.gs

    リーリー

    このメソッドを使用して、バイナリ情報を値として持つ JS オブジェクトなどの複合型を交換することもできます。

    返事
    0
  • P粉298305266

    P粉2983052662024-01-22 13:48:47

    あなたの目標は次のとおりだと思います。

    • あなたのウェブサイトは Google アカウントに関連付けられていません。独立しています。
    • Web サイトにはファイルをアップロードするためのフォームがあります。
    • ユーザーがフォームを送信したときに、承認なしにファイルを Google ドライブにアップロードし、アップロードされたファイルの Google ドライブ上の URL を返したいと考えています。
    • 「データベース」に関しては、これはあなたのデータベースです。取得したファイルの URL をクライアントの「データベース」に置きます。

    この場合、Google Apps Script を使用して作成された Web アプリケーションで目的を達成できると思います。

    ###使用法:###

    以下の処理を行ってください。

    ###1。 Google Apps Script用の新しいプロジェクトを作成します。

    Web Apps のサンプル スクリプトは Google Apps Script です。そこで、Google Apps Script プロジェクトを作成します。

    直接作成したい場合は、

    https://script.new/

    にアクセスしてください。この場合、まだ Google にログインしていない場合は、ログイン画面が開きます。そこで、Google にログインしてください。これにより、Google Apps Script スクリプト エディタが開きます。

    ###2。スクリプトを準備します。 次のスクリプト (Google Apps Script) をコピーして、スクリプト エディターに貼り付けてください。このスクリプトは Web アプリケーションに適しています。

    サーバー側: Google Apps Script

    ファイルを配置するフォルダーIDを設定してください。

    リーリー ###3。 Web アプリケーションを展開します。

    スクリプト エディターで、[公開] -> [Web アプリとして展開] を選択してダイアログ ボックスを開きます。

    「アプリケーションの実行:」

      「I」
    1. を選択します。
    2. これにより、スクリプトは所有者として実行されます。
        「アプリにアクセスできる人」の場合:
      • 「匿名でも誰でも」を選択します。
    3. 新しい「プロジェクト バージョン」として「デプロイ」ボタンをクリックします。
    4. 「認証が必要です」ダイアログボックスが自動的に開きます。 「権限を表示」をクリックします。
    5. アカウントを選択してください。
    6. 「このアプリは検証されていません」の横にある「詳細」をクリックします。
      1. プロジェクト名
      2. (安全ではありません) に移動」をクリックします
      3. 「許可」ボタンをクリックします。
      4. 「OK」をクリックします。
      5. Web アプリケーションの URL をコピーします。
      https://script.google.com/macros/s/
    7. /exec
    8. のように。
    9. Google Apps Script を変更した後は、新しいバージョンに再デプロイしてください。このようにして、変更したスクリプトが Web Apps に反映されます。ご注意ください。
      • ###4。クライアントからサーバーにファイルをアップロードします。
      クライアント: HTML と Javascript
    次のスクリプトに Web アプリケーションの URL を設定してください。

    リーリー

    クライアント側では、ローカル PC からファイルを選択してボタンを押すと、Web アプリ (サーバー側) のデータが取得されて、ファイルが Google ドライブにアップロードされます。

    ###結果:###

    上記のスクリプトを実行すると、以下の値が返されます。ここから、ファイルの URL を取得できます。
      リーリー ###知らせ:###

        Web アプリのスクリプトを変更する場合は、Web アプリを新しいバージョンに再デプロイします。これにより、最新のスクリプトが Web Apps に反映されます。ご注意ください。
      • 上記のスクリプトでは、最大ファイル サイズは 50 MB です。この段階では、Google Apps Script の最大 BLOB サイズは 50 MB であるためです。
      • 参考文献:

        インターネット アプリケーション
      • Google Apps でウェブ アプリ スクリプトを最大限に活用しましょう
      • 返事
        0
  • キャンセル返事