legacy-knowledge-base
公開されました Jun. 30, 2025

ゲストユーザーがフォームにファイルをアップロードできない - 予期しないエラーが発生しました

投稿者

Tímea Bihari

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 認証されたユーザーはファイルをアップロードできますが、ゲストはアップロードできません。
  • すべての権限はGuestユーザーに提供されます。
  • ユーザーがアップロードするファイルを選択すると、すぐにエラーメッセージが表示される:「ファイルのアップロード中に予期せぬエラーが発生しました。
  • サーバー管理 > ログに"com.liferay.dynamic.data.mapping.form.web.internal.upload.DDMFormUploadResponseHandler "をDEBUGで追加すると、以下のエラーが表示されます:
DEBUG [http-nio-8080-exec-630][DDMFormUploadResponseHandler:56] null
com.liferay.portal.kernel.exception.NoSuchUserException: No User exists with the key {companyId=20101, screenName=ddm_form_default_user_screen_name}
at com.liferay.portal.service.persistence.impl.UserPersistenceImpl.findByC_SN(UserPersistenceImpl.java:4582) ~[portal-impl.jar:?]

環境

  • アップデート31下のLiferay DXP 7.3
  • アップデート76下のLiferay DXP 7.4

解像度

  • Instance Settings > Users > Fields で "Autogenerate User Screen Names" がチェックされている場合、ddm フォームのデフォルトユーザは"ddm.form.default.user.screen.name" というスクリーンネームで作成されます。
  • これは DocumentLibraryDDMFormFieldTemplateContextContributor が期待するスクリーン名 ("ddm_form_default_user_screen_name") とは異なるため、アップロードフィールドを使用するフォームは例外をスローします。
  • 7.4用u76と7.3用u31のLPS-133096が修正されました。

追加情報

次の 回避策 が利用できる:

  1. コントロールパネル > サーバ管理 > スクリプト に移動する。
  2. 以下のスクリプトを実行する:
import com.liferay.portal.kernel.service.UserLocalServiceUtil;
import com.liferay.dynamic.data.mapping.constants.DDMFormConstants;

UserLocalServiceUtil.updateScreenName(userId, DDMFormConstants.DDM_FORM_DEFAULT_USER_SCREEN_NAME);

スクリプトを実行する前に、データベースのバックアップを作成し、必要に応じて復元できるようにしてください。

did-this-article-resolve-your-issue

legacy-knowledge-base