MAAY
@MAAY

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Power Automate DesktopでHTTPアクションを使用して、multipart/form-data形式でファイルをアップロードする方法

Power Automate DesktopでHTTPアクションを使用して、
multipart/form-data形式でファイルをアップロードする方法について
詳しい方がいらっしゃいましたらご助言頂きたいです。

現在リクエストボディ部分を

{
"$content-type": "multipart/form-data",
"$multipart": [
{
"headers": {
"Content-Disposition": "form-data; name="file"; filename="ここにファイル名""
},
"body": {
"$content-type": "application/octet-stream",
"$content": "%Base64Text%"
}
}
]
}

といった形で実行し、アップロードの動作自体はできているのですが、ファイルが開けずうまくいきません。

0

2Answer

解決しているかどうかわかりませんが呼びましたか(笑?
HTTPリクエストができるということはプレミアムアカウントですよね。

Power Automateではこのリクエストボディの記述でアップロードができていたはずなの ですが、PADだとなぜかファイルが開けず困っています・・・

以上のことから『Power AutomateだとHTTPリクエストのアクションから正常にできた実績がある』ということですね。

このPADフローはPower automateクラウドフローからスケジュール実行やトリガーによる実行の後PADをCallするということでOKでしょうか。

であれば、
①Power Automateで定期スケジュール実行Orトリガーによる実行をしPADフローをRun
②PADで%Base64text%を【入出力変数】に入れてPower automateクラウドフローに渡す
(入出力変数とはPower automateからPower automate desktopに変数を受け渡したり
Power automate desktopからPower automateに変数を受け渡すことができるこのシステム特有の機能)
image.png
image.png
③Power automateフロー(クラウドフロー)に戻ってPAD実行アクションの後に正常に動いたPower automateのHTTPリクエストアクションを追加し、入出力変数に受け渡した%Base64text%を設定してあげる

これが簡単なのではないでしょうか。

ただし、
PADでbase64テキストを取得する時、ファイルの置き場所によってはbase64テキストが途中でかける(ファイルが破損したり、画像が半分しか表示されなかったり)ことがあったような気がします。
なので対象ファイルが正常に取得できているか、下記黄色線アクションで事前に見てみるとよろしいかと思います。

image.png

蛇足とはなりますが、24時間動いている管理用のPCで実行するのであれば、
ゲートウェイ接続をしクラウドフローで直接ファイルコンテンツの取得を行ってもよいかもしれません。

https://learn.microsoft.com/ja-jp/power-automate/gateway-manage
gatewayに接続するとローカルからファイルを取得できるようになりますので…
その際は下記アクションを利用します
image.png

1Like

Comments

  1. @MAAY

    Questioner

    @ChisatoMatsunami
    通知に気づいておらず、返信が遅くなり申し訳ありません。失礼いたしました。
    ご回答くださりありがとうございます!

    私の説明に難があり伝わっていなかったのですが、PAで実装できた内容を
    PADだけで実装ができるのか試したかった、というのが今回の内容です。
    ただPADからPAに入出力変数を渡す方法やゲートウェイ接続でローカルからファイルを取得することができるなど知らなかったので大変勉強になりました!
    丁寧に教えてくださりありがとうございます!

フローの説明が無いので詳しく分かりませんが、次の事例と同じでしょうか?

0Like

Comments

  1. @MAAY

    Questioner

    @nak435
    ご返信ありがとうございます!
    フローの流れはまさにこの事例と同じです。私もこの記事を見ていました。
    現在は「ファイルをBase64に変換」アクションで取得したものがリクエストボディ部分の「%Base64Text%」になっています。

    Power Automateではこのリクエストボディの記述でアップロードができていたはずなのですが、PADだとなぜかファイルが開けず困っています・・・

  2. ちなみに、アップロード先はどこでしょうか? Kintone? SharePoint? GoogleDrive?
    また、そのアップロード先は、FTPでもアップロード可能なサイトでしょうか?

  3. @MAAY

    Questioner

    @nak435

    アップロード先はkintoneに似ているのですが、コラボフローというサービスです。
    FTPについては私が初学者故に知識がないです、すみません・・・!

  4. コラボフローは利用経験が無いので分かりませんが、以下のAPI(File/Post)でアップロードできませんかね?

Your answer might help someone💌