ファイル

file(opts: {| name: String, path: String, mime?: String, fileName?: String |}​)

ソースファイルから ​MultipartPart​ データ構造を作成します。

このバージョンの ​file​ 関数では引数としてキー/値ペアを含むオブジェクトが受け入れられるため、次のようにキー/値ペアを任意の順序で入力できます。

Multipart::file({ name: "myFile", path: "myClients.json", mime: "application/json", fileName: "partMyClients.json"})

パラメーター

名前 説明

opts

次のキー/値ペアを指定するオブジェクト。

  • name​ (必須): パートの ​Content-Disposition​ ヘッダーの一意の名前。

  • path​ (必須): Mule アプリケーションの ​src/main/resources​ プロジェクトパスを基準とする相対パス。

  • mime​ (文字列の場合は省略可能): パート内のコンテンツに適用する MIME タイプ (例: application/json​)。この設定を使用して入力の MIME タイプを変換することは​できません​。

  • fileName​ (省略可能): パートの ​Content-Disposition​ ヘッダー内の ​filename​ パラメーターの値。指定されていない場合、デフォルトの文字列 ​"filename"​ に設定されます。この値は入力ファイル名に一致する必要はありません。

次の例では、DataWeave 関数でアクセスできるファイルから ​MultipartPart​ を作成します。ファイル名は ​orders.xml​ で、Mule アプリケーションの ​/src/main/resources​ にあります。

file​ 関数は外部の ​orders.xml​ ファイルを見つけ、キー/値ペアを使用して ​MultipartPart​ の作成に必要なさまざまなパラメーターを指示します。

  • name​ は任意に指定できますが、通常はこの ​Multipart​ ペイロードを受け入れる受信側サーバーで必要なパラメーターに合わせます。

  • path​ は ​./orders.xml​ に設定されます。これは ​MultipartPart​ に読み込まれる ​orders.xml​ ファイルのパスと名前です。

  • mime​ パラメーターではファイルの適切な MIME タイプを指定します。この場合は ​application/xml​ です。

  • filename​ は任意の値に変更できます。実際の入力ファイルのファイル名と違ってもかまいません。

この例の出力は ​Multipart​ 構造の一部でしかないため、​multipart/form-data​ 出力種別との互換性がありません。有効な ​multipart/form-data​ 出力を作成するには、​Multipart::form()​ 関数を 1 つ以上の ​Multipart​ ファイルや項目に使用します。

ソース

%dw 2.0
import dw::module::Multipart
output application/dw
var ordersFilePath = "./orders.xml"
---
Multipart::file{ name: "file", path: ordersFilePath, mime: "application/xml", fileName: "orders.xml" }

入力

次のコンテンツを含む、​src/main/resources​ に配置されている ​orders.xml​ という名前のファイル。

<orders>
  <order>
    <item>
      <id>1001</id>
      <qty>1</qty>
      <price>\$100</price>
    </item>
    <item>
      <id>2001</id>
      <qty>2</qty>
      <price>\$50</price>
    </item>
  </order>
</orders>

出力

{
headers: {
    "Content-Type": "application/xml",
    "Content-Disposition": {
      name: "file",
      filename: "orders.xml"
    }
  },
  content: "<?xml version='1.0' encoding='UTF-8'?>\n<orders>\n  <order>\n    <item>\n      <id>1001</id>\n      <qty>1</qty>\n      <price>\$100</price>\n    </item>\n    <item>\n      <id>2001</id>\n      <qty>2</qty>\n      <price>\$50</price>\n    </item>\n  </order>\n</orders>"
}

次の例では、ファイルのコンテンツを ​MultipartPart​ から ​Multipart​ に挿入して、​multipart/form-data​ 出力にします。この例では ​form​ 関数を使用して ​Multipart​ を作成し、​file​ を使用してパートを作成します。

Multipart::form()​ 関数は、各パートを ​Multipart::field()​ または ​Multipart::file()​ 関数を使用して作成可能な ​Multipart​ 項目の配列を受け入れます。

ソース

%dw 2.0
import dw::module::Multipart
output multipart/form-data
var ordersFilePath = "./orders.xml"
var myArgs = { name: "file", path: ordersFilePath, mime: "application/xml", fileName: "myorders.xml"}
---
Multipart::form([
  Multipart::file(myArgs)
])

出力

------=_Part_5349_1228640551.1560391284935
Content-Type: application/xml
Content-Disposition: form-data; name="file"; filename="myorders.xml"
<?xml version='1.0' encoding='UTF-8'?>
<orders>
  <order>
    <item>
      <id>1001</id>
      <qty>1</qty>
      <price>$100</price>
    </item>
    <item>
      <id>2001</id>
      <qty>2</qty>
      <price>$50</price>
    </item>
  </order>
</orders>
------=_Part_5349_1228640551.1560391284935--

file(fieldName: String, path: String, mime: String = 'application/octet-stream', sentFileName: String = 'filename')

ソースファイルから ​MultipartPart​ データ構造を作成します。

このバージョンの ​file​ 関数は、次のようにカンマ区切りリストで文字列引数を受け入れます。

Multipart::field("myFile", myClients, 'application/json', "partMyClients.json")

パラメーター

名前 説明

fieldName

パートの ​Content-Disposition​ ヘッダーの一意の名前 (必須)。

path

Mule アプリケーションの ​src/main/resources​ プロジェクトパスへの相対パス (必須)。

mime

パート内のコンテンツに適用する MIME タイプ (文字列の場合は省略可能)。例: application/json​。この設定を使用して入力の MIME タイプを変換することは​できません​。

sentFileName

パートの ​Content-Disposition​ ヘッダー内の ​filename​ パラメーターの省略可能なファイル名の値。指定されていない場合、デフォルトで文字列 ​"filename"​ になります。この値は入力ファイル名に一致する必要はありません。

次の例では、ファイルのコンテンツを ​MultipartPart​ から ​Multipart​ データ構造に挿入します。​form​ 関数を使用して ​Multipart​ 型を作成し、​file​ を使用して外部ファイル ​myClients.json​ の JSON コンテンツを含む ​myClient​ という名前のパートを作成します。また、​filename​ パラメーターの値として ​partMyClients.json​ を指定します。

ソース

%dw 2.0
import dw::module::Multipart
var myClients = "myClients.json"
output multipart/form-data
---
Multipart::form([
 Multipart::file("myFile", myClients, 'application/json', "partMyClients.json")
])

入力

次のコンテンツを含む、​src/main/resources​ に配置されている ​myClients.json​ という名前のファイル。

clients: {
    client: {
      id: 1,
      name: "Mariano"
    },
    client: {
      id: 2,
      name: "Shoki"
    }
  }

出力

------=_Part_1586_1887987980.1542569342438
Content-Type: application/json
Content-Disposition: form-data; name="myFile"; filename="partMyClients.json"

{
   clients: {
     client: {
       id: 1,
       name: "Mariano"
     },
     client: {
       id: 2,
       name: "Shoki"
     }
   }
}
------=_Part_1586_1887987980.1542569342438--