添付ファイルフィールド
添付ファイルフィールドは、インスタンスの ドキュメント ライブラリにファイルをアップロードするためのものです。 アップロードされると、ファイルはエントリの添付ファイル フィールドにリンクされます。 各フィールドは一度に 1 つのファイルにのみリンクできます。 ファイルは、オブジェクト定義(CompanyやSiteなど)からその範囲を継承します。 添付後は、オブジェクトエントリーを表示して、ファイルをダウンロードしたり、項目から削除したりすることができます。 7.4 U45/GA45 以降では、 オブジェクトのアプリケーション ページからエントリ添付ファイルをダウンロードすることもできます。 2024.Q4/Portal GA129 以降、外部参照コードを使用して添付が行われるため、 新しいシステムにエクスポートおよびインポート するときに、添付ファイルとオブジェクト エントリ間のリンクを保持できます。

アセットがオブジェクトのエントリーから削除されても、ドキュメントライブラリからは削除されません。
フィールド作成時に、Request Filesフィールドを使用して、ユーザーがオブジェクトのエントリーにファイルをアップロードする方法を決定することができます。
ユーザーのコンピュータから直接アップロード:ユーザーは、オペレーティングシステムのファイルセレクタを使用して、エントリにファイルをアップロードすることができます。 デフォルトでは、このメソッドは、オブジェクト定義用に自動生成されたプライベートの隠しフォルダーにファイルを保存します。
「ドキュメントとメディア内のファイルを表示」を有効にすると、アップロードされたファイルは「ドキュメントとメディア」内のフォルダーに保存されます。 デフォルトでは、このフォルダはオブジェクト定義の名前を使用しますが、項目を設定する際に変更することができます。 オブジェクト エントリを削除しても、添付ファイルは削除されません。
「ドキュメントとメディア内のファイルを表示」を無効にすると、添付ファイルはプライベート フォルダーにのみ関連付けられ、オブジェクト エントリを削除すると添付ファイルも削除されます。
ドキュメントとメディアのアイテムセレクターからアップロードまたは選択してください:ドキュメントとメディアにある既存のファイルから選択するか、アイテムセレクターを使用してファイルをアップロードすることができます。 アップロードされたファイルは、ドキュメントとメディアのルートフォルダに保存され、他のファイルと同様に管理することができます。
![[Request Files]項目は、ユーザーがオブジェクトエントリーにファイルを追加する方法を決定します。](https://resources.learn.liferay.com/images/dxp/latest/en/low-code/objects/creating-and-managing-objects/fields/attachment-fields/images/02.png)
必要に応じて、次の ポータル プロパティ をサーバーに追加することで、ドキュメントとメディア内の非表示の添付ファイル フィールド フォルダーを表示できます: dl.show.hidden.mount.folders=true
添付ファイル項目を作成した後、以下の方法で設定することができます。
| 設定 | Description |
|---|---|
| 許可されたファイル拡張子 | ユーザーが項目にアップロードできるファイルの種類を決定するために、受け入れられるファイル拡張子のリストを入力します。 各拡張子はカンマで区切る必要があります。 添付ファイル フィールドは、 ドキュメントとメディアで受け入れられるすべてのファイル タイプをサポートします。 Liferay DXP 2025.Q4+ からは、 * と入力してすべてのタイプを許可できます。 |
| 最大ファイルサイズ | 項目で受け入れられる最大ファイルサイズを入力します。 デフォルト値は100MBです。 必要であれば、値を0に設定して、サーバーの合計最大アップロードリクエストサイズのプロパティを使用できます。 |
| ストレージフォルダ ([ドキュメントとメディアでファイルを表示]用) | ドキュメントとメディアにアップロードされたファイルの保存先を決定するためのフォルダ名を入力します。 デフォルトでは、フォルダにはオブジェクト定義の名前が使用されます(例: /Employee、/TimeOffRequest)。 |
APIで添付ファイルフィールドを使用する
DXP 2024.Q2/Portal GA120 より前の Liferay バージョンでは、ヘッドレス API を使用して添付ファイルをオブジェクトエントリの添付ファイルフィールドに追加する前に、添付ファイルが Liferay に存在している必要があります。 ドキュメント ライブラリ API を使用して、ファイルをアップロードし、その ID を取得します。
Liferay DXP 2024.Q2+/Portal GA120+ では、手順を省略して、リクエスト本文に Base64 でエンコードされたファイルを含めることができます。 詳細については、 Base64 でエンコードされたファイルでのオブジェクト API の使用 を参照してください。
Liferay DXP 2024.Q4+/Portal GA120+ では、添付ファイルは ID ではなく ERC を使用してオブジェクト エントリにリンクされます。 これにより、ERC がシステム間で保持されるため、移植性が向上します。 詳細については、 オブジェクトのエクスポートとインポート を参照してください。
エントリを POST して添付ファイルを含めるには、次の構文を使用してオブジェクト API 呼び出しで ID を渡します: "[attachmentField]": [FileEntryId]。
この例では、 timeOffRequestという名前のオブジェクトにエントリを追加します。 IDが12345のファイルを、添付ファイルフィールドdocumentに追加します。
curl -X "POST" "http://localhost:8080/o/c/timeOffRequest?restrictFields=actions" \
-H "Content-Type: application/json" \
-u 'test@liferay.com:learn' \
-d $'{"document": 12345}'
URL を含む添付フィールドの追加
Liferay DXP 2025.Q1+/ポータル GA132+
fileURL フィールドを介して、URL を使用してオブジェクトにファイル添付を含めることもできます。 このアプローチは、REST API 呼び出しと バッチインポートに機能します。
ファイルの種類と一致する拡張子を持つ 名前 フィールドを含める必要があります (例: .png)。 名前 フィールドに一致する拡張子のないオブジェクト エントリを追加すると、エラーが発生します。
URL を含むファイル添付ファイルを追加すると、同じドキュメントが既に存在する場合でも、新しいドキュメントとしてアップロードされます。 ファイルは、インスタンス スコープのオブジェクトの場合はグローバル サイトにアップロードされ、サイト スコープのオブジェクトの場合はオブジェクトのサイトにアップロードされます。 既存のドキュメントを添付する場合は、その ID または外部参照コードを使用して参照します 。
たとえば、このコマンドは、 imageObjectという名前のオブジェクトのエントリを追加し、添付フィールド pictureに PNG 添付ファイルを追加します。 ドキュメントがグローバル サイトにアップロードされます。
curl -X "POST" "http://localhost:8080/o/c/imageObject?restrictFields=actions" \
-H "Content-Type: application/json" \
-u 'test@liferay.com:learn' \
-d { "picture": { "fileURL": "http://localhost:8080/documents/d/guest/treepic", "name": "tree.png" } }
添付ファイルフィールドの権限の管理
Liferay DXP 2025年第4四半期以降 / ポータル 2026年第1四半期以降
オブジェクト定義レベルとオブジェクトエントリ レベルで、個々の添付ファイル フィールドのダウンロード権限を設定できます。
ロールの 権限の定義 セクションで、オブジェクト定義のフィールドのダウンロード権限を設定します。

これらのオブジェクト定義権限は、各エントリの権限画面のデフォルトの選択を設定します。 エントリの権限は、[アクション] メニューから表示および管理できます。

オブジェクトのエントリ レベルの権限は、ロールに設定された定義のデフォルトを上書きします。
添付ファイルがドキュメントとメディアに保存されている場合、ドキュメントとメディアの権限がオブジェクト フィールドの権限よりも優先されます。