ファイルを作成する
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
Documents and Mediaライブラリでファイル(FileEntry
エンティティ)を作成するには、 DLAppService
インターフェイスの addFileEntry
メソッドを使用する必要があります。 そのような方法は3つあり、ファイルの作成に使用されるデータ型によって異なります。 各メソッドをクリックすると、メソッドとそのパラメーターの詳細な説明が表示されます。
次の引数はオプションです。
sourceFileName
:これは、アップロードされたファイルを追跡します。 そのファイルに拡張子がある場合、コンテンツタイプを推測します。mimeType
:デフォルトはバイナリストリームです。 省略すると、Documents and Mediaはファイル拡張子からタイプを推測しようとします。description
:ポータルに表示するファイルの説明。changeLog
:ファイルバージョンの説明。は
およびサイズ
:InputStream
をとるメソッドでは、is
パラメーターにnull
を使用できます。 ただし、これを行う場合は、サイズ
パラメーターに0
を使用する必要があります。
DLAppService
メソッド addFileEntry
を使用してファイルを作成するには、次の手順に従います。 これらの手順では、 InputStream
を含むメソッドを使用することに注意してください。
-
DLAppService
への参照を取得します。@Reference private DLAppService _dlAppService;
詳細については、入門チュートリアルの「サービスリファレンス 取得
」のセクションを参照してください。
2 addFileEntry
メソッドの引数を設定するために必要なデータを取得します。 エンドユーザーから送信されたデータを使用してファイルを作成するのが一般的であるため、リクエストからデータを抽出できます。 この例では、 UploadPortletRequest
および ParamUtil
を使用してこれを行いますが、任意の方法でデータを取得できます。
long repositoryId = ParamUtil.getLong(uploadPortletRequest, "repositoryId");
long folderId = ParamUtil.getLong(uploadPortletRequest, "folderId");
String sourceFileName = uploadPortletRequest.getFileName("file");
String title = ParamUtil.getString(uploadPortletRequest, "title");
String description = ParamUtil.getString(uploadPortletRequest, "description");
String changeLog = ParamUtil.getString(uploadPortletRequest, "changeLog");
boolean majorVersion = ParamUtil.getBoolean(uploadPortletRequest, "majorVersion");
try (InputStream inputStream = uploadPortletRequest.getFileAsStream("file")) {
String contentType = uploadPortletRequest.getContentType("file");
long size = uploadPortletRequest.getSize("file");
ServiceContext serviceContext = ServiceContextFactory.getInstance(
DLFileEntry.class.getName(), uploadPortletRequest);
}
リポジトリIDとフォルダIDの取得の詳細については、リポジトリとフォルダの指定に関する 入門チュートリアルの セクションを参照してください。 ServiceContext
詳細については、チュートリアル ServiceContextについて参照してください。
3 前の手順のデータを使用して、サービス参照の addFileEntry
メソッドを呼び出します。 この例は、前のステップのtry-with-resourcesステートメント内で実行することに注意してください。
try (InputStream inputStream = uploadPortletRequest.getFileAsStream("file")) {
...
FileEntry fileEntry = _dlAppService.addFileEntry(
repositoryId, folderId, sourceFileName, contentType, title,
description, changeLog, inputStream, size, serviceContext);
}
このメソッドは FileEntry
オブジェクトを返します`この例では、後で使用するために変数に設定します。 ただし、これを行う必要はありません。
この例の完全なコードは、Liferay DXPの EditFileEntryMVCActionCommand`
クラスの `updateFileEntry` メソッドにあります。 このクラスは、Documents and Media APIを使用して、Documents and Mediaアプリがサポートするほぼすべての `FileEntry` アクションを実装します。 また、この `updateFileEntry` メソッドと、残りの `EditFileEntryMVCActionCommand`には、Documents and Mediaアプリの特定のニーズに合う追加のロジックが含まれていることに注意してください。