3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OutSystemsでファイルアップロード時に 拡張子・ファイルサイズ・ファイル名の文字種を制限する その2 Forge編

Last updated at Posted at 2025-12-07

1. はじめに

OutSystems Reactive でファイルアップロードにおける
拡張子・ファイルサイズ・ファイル名の文字種 を制限しようとすると、
標準機能だけでは実現が難しく、追加のロジックや Forge コンポーネントが必要になるケースがほとんどです。

関連リンク: その1:標準 Upload でできること/できないこと

本記事(その2)では、以下のコンポーネントを使って、
クライアント側で事前バリデーションする方法を解説します。

  • Forge の File Size/Type/Extension Client Side

2. 使用する Forge コンポーネント

File Size, Type, Extension Client Side (Reactive)


3. File Size, Type, Extension Client Side の使い方

3-1. 標準 Upload はそのまま利用

  • Upload ウィジェットを画面に配置
  • 置き換える必要はありません

3-2. クライアントアクションで情報を取得

  • 選択されたファイルの サイズ・拡張子・MIMEタイプ を取得
  • 取得した情報をもとに、自前のロジックで制限を実装

3-3. 実装例(概念)

Upload1.OnChange → Get (FileSize, Extension, MimeType)
→ If FileSize > MAX_SIZE or Extension not allowed
   → Show error message
   → Clear Upload
  • 制限やエラー表示は開発者が自前で実装する必要があります
  • ファイルコンポーネントの ID を渡すことで、ファイルサイズ・拡張子・MIMEタイプを取得可能
  • 取得できれば、あとは用途に合わせて処理を自由に組み込み

組み込み例

  • Upload OnChange
    Upload OnChange

  • OKの場合(画面イメージ)
    OKの場合

  • NGの場合(画面イメージ)
    NGの場合


4. まとめ

  • この Forge は クライアント側でファイルの情報を取得するだけ です *それがいい

  • アップロード制限は自作のロジックで行う必要があります

  • メリット:

    • クライアント側でファイルサイズを取得できるため、アップロード前にブロック可能
    • API が最小限でシンプル、制限内容や制限時の動作を自由に組み込み可能
  • ファイル名の文字種チェックは 非対応


5. 参考:ReactFilePondUpload O11


💡 補足
次回の記事(その3)では、Forge を使わずに クライアント/サーバーでバリデーションを実装する例 を紹介予定です。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?