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

アセットがオブジェクトのエントリーから削除されても、ドキュメントライブラリからは削除されません。
フィールド作成時に、Request Filesフィールドを使用して、ユーザーがオブジェクトのエントリーにファイルをアップロードする方法を決定することができます。
ユーザーのコンピュータから直接アップロード (ドキュメントとメディア): ローカルのオペレーティングシステムセレクタを使用してファイルをアップロードします。 デフォルトでは、ファイルはオブジェクト定義用に自動生成されたプライベートな隠しフォルダに保存されます。 フィールドの設定内で、カスタムのドキュメントおよびメディア保存フォルダを指定します。
ユーザーのコンピュータから直接アップロード (CMS ファイル): ローカルのオペレーティングシステムセレクタを使用してファイルをアップロードします。 ファイルはCMSファイルリポジトリ内に直接保存されます。 これには既存のCMSサイトが必要です。
ライブラリにアップロードされたファイルを表示するを有効にすると、アップロードされたファイルはドキュメントとメディアまたは CMS のフォルダーに保存されます。 デフォルトでは、このフォルダはオブジェクト定義の名前を使用しますが、項目を設定する際に変更することができます。 オブジェクトエントリを削除しても、添付ファイルは削除されません。
ライブラリにアップロードされたファイルを表示するを無効にすると、添付ファイルはプライベートフォルダにのみ関連付けられ、オブジェクトエントリを削除するとその添付ファイルも削除されます。
CMS ファイルのアップロードまたは選択: CMS ファイルリポジトリから既存のファイルを直接選択します。 このオプションを選択するには、CMSサイトが作成されている必要があります。
ドキュメントとメディアアイテムセレクターからアップロードまたは選択: ドキュメントとメディアにある既存のファイルを選択するか、アイテムセレクターを使用してファイルをアップロードします。 アップロードされたファイルは、ドキュメントとメディアのルートフォルダに保存され、他のファイルと同様に管理することができます。
![[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に設定して、サーバーの合計最大アップロードリクエストサイズのプロパティを使用できます。 |
| CMSスペース(でライブラリにアップロードされたファイルを表示) | アップロードしたファイルを保存するCMSスペースを選択してください。 |
| ストレージフォルダ(でライブラリにアップロードされたファイルを表示) | アップロードしたファイルの保存場所を指定するには、選択したフォルダのパスを入力してください。 デフォルトでは、フォルダにはオブジェクト定義の名前が使用されます(例: /Employee、/TimeOffRequest)。 |
APIで添付ファイルフィールドを使用する
LiferayのバージョンがDXP 2024.Q2/Portal GA120より前の場合、ヘッドレスAPIを使用してオブジェクトエントリの添付ファイルフィールドに添付ファイルを追加するには、添付ファイルがLiferay内に存在している必要があります。 ドキュメントライブラリAPI を使用してファイルをアップロードし、そのIDを取得します。
Liferay DXP 2024.Q2+/Portal GA120+では、手順を1つ省略して、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+/Portal GA132+
また、 fileURL フィールドを使用して、URL を介してオブジェクトにファイル添付を含めることもできます。 このアプローチは、REST API 呼び出しと バッチインポート に有効です。
name フィールドには、ファイルの種類に一致する拡張子 (例: .png を含める必要があります。 name フィールドに一致する拡張子のないオブジェクトエントリを追加すると、エラーが発生します。
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.Q4+/Portal 2026.Q1+
オブジェクト定義レベルとオブジェクトエントリレベルの両方で、個々の添付ファイルフィールドのダウンロード権限を設定できます。
ロールの 権限の定義 セクションで、オブジェクト定義内のフィールドのダウンロード権限を設定します。

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

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