ファイルのアップロード・ダウンロードを扱うフィールド。画像のプレビュー表示にも対応します。
- 画像・PDF・Excel など添付ファイルの登録
- アバター画像のアップロード・プレビュー
- ファイル実体とメタ情報(ファイル名・サイズ・GUID)を DB で管理したい場合
| C#名 | 日本語表示名 | 説明 |
|---|---|---|
| - | フィールドタイプ | ファイル 固定 |
| C#名 | 日本語表示名 | 型 | 既定値 | 説明 |
|---|---|---|---|---|
| Name | 名前 | string | "" |
フィールド識別子 |
| DisplayName | 表示名 | string | "" |
画面表示用の名前 |
| DbColumnFileName | ファイル名のDBカラム | string | "" |
ファイル名を保存する DB 列 |
| DbColumnFileSize | ファイルサイズのDBカラム | string | "" |
ファイルサイズ(バイト)を保存する DB 列 |
| DbColumnFileGuid | ファイルGUIDのDBカラム(ファイル内容とどちらかを利用) | string | "" |
ストレージ上の識別 GUID を保存する DB 列 |
| DbColumnFileContent | ファイル内容のDBカラム(GUIDとどちらかを利用) | string | "" |
ファイルの中身を保存する DB 列(バイナリ型)。指定すると File Storage を使わず DB に保存する(下記) |
| StorageName | ストレージ名 | string | "" |
保存先の File Storage 名(designer.settings.json で定義) |
| MaxAllowedSize | 最大サイズ | long? | 500MB(未指定時) |
許容する最大バイト数 |
| AllowedExtensions | 許可する拡張子 | string | "" |
受け付けるファイルの拡張子(例: pdf, jpg, png)。空なら制限なし |
| ShowPreview | プレビュー表示 | bool | false |
画像の場合にプレビューを表示 |
| PreviewWidth | プレビュー幅 | double? | null | プレビュー画像の表示幅(px)。未指定ならフィールドの幅いっぱい |
| PreviewHeight | プレビュー高さ | double? | null | プレビュー画像の表示高さ(px) |
| ObjectFit | 画像の表示方法 | enum | Contain |
プレビュー画像のフィット方式(Contain / Cover / Fill など) |
| IsUpdateProtected | 更新無効 | bool | false |
更新時に値を変更できないようにする |
| OnDataChanged | データ変更イベント | string | "" |
値変更時のスクリプトイベント |
| IgnoreModification | 変更判定から除外 | bool | false |
変更検知(IsModified)から除外 |
| C#名 | 日本語表示名 | 型 | 既定値 | 説明 |
|---|---|---|---|---|
| OnSearchDataChanged | 検索モードデータ変更イベント | string | "" |
検索条件が変更された時のスクリプトイベント |
FileField は
必須/簡易検索条件/空検索を許可のプロパティを持ちません。
FileField は 3 つの情報を DB に保存します:
- FileName — 元のファイル名
- FileSize — バイトサイズ
- FileGuid — ストレージ上の識別子
ファイル実体は File Storage(ローカルファイルシステム/クラウドストレージなど)に保存され、DB には GUID だけが残ります。
ストレージはサーバー (Server プロジェクト) の appsettings.json で定義します。アプリテンプレートでは保存先の種類ごとのセクションに書きます:
"FileSystemStorages": [
{
"Name": "Local",
"Directory": "C:\\Codeer.LowCode.Blazor.Local\\Storages"
}
]FileField の StorageName にここで定義した名前を指定します(デザイナで候補に出す名前は designer.settings の FileStorageNames に書きます)。
Azure Blob Storage・Amazon S3(S3 互換を含む)などの保存先と設定項目は、Extras の FileStorage を参照してください。
DbColumnFileContent にバイナリ型の DB 列(SQL Server の varbinary(max)、PostgreSQL の bytea など)を指定すると、ファイルの中身を File Storage ではなくその列に保存します。File Storage の設定と一時ファイル管理テーブルは不要になり、ファイルはデータの保存(Submit)と一緒に DB へ書き込まれます。DbColumnFileGuid と DbColumnFileContent はどちらか一方を使います。
アップロード中の一時ファイルを管理するテーブルが必要です:
create table temporary_files
(
id bigint generated by default as identity primary key,
guid uuid not null,
created_date_time timestamp
);pdf, jpg, png のように拡張子を並べます。区切りはカンマ・セミコロン・空白・改行のどれでもよく、先頭のドット(.pdf)や大文字小文字は区別しません。
- ファイル選択ダイアログには許可した拡張子のファイルだけが表示されます
- ドラッグ&ドロップやスクリプトの
SetFileで許可していない拡張子のファイルを渡すとエラーになります。拡張子の無いファイルも受け付けません - 保存(Submit)時にもサーバーで同じ判定が行われます
ShowPreview が true のときのプレビュー画像の大きさを指定します。
| 指定 | 表示 |
|---|---|
| どちらも未指定 | フィールドの幅いっぱい |
PreviewWidth のみ |
指定した幅。高さは画像の縦横比に合わせる |
PreviewHeight のみ |
指定した高さ。幅は画像の縦横比に合わせる(フィールドの幅は超えない) |
| 両方 | 指定した大きさの枠に固定。枠への収め方は ObjectFit に従う |
| 名前 | 型・戻り値 | 説明 |
|---|---|---|
FileName |
string? | ファイル名 |
SearchFileName |
string? | 検索用ファイル名(代入で設定) |
SearchFileNameComparison |
MatchComparison | ファイル名検索の比較方法(既定 Like) |
SearchFileSizeMin / SearchFileSizeMax |
decimal? | サイズの範囲検索(代入で設定) |
SetFile(fileName, StreamContent) |
Task | ファイルをプログラム的に設定 |
ClearFile() |
Task | ファイルをクリア |
GetMemoryStream() |
Task<MemoryStream?> | ファイル内容を取得 |
Download() |
Task | ダウンロードを促す |
共通プロパティは Field 共通プロパティ を参照。
// ボタンでファイルをダウンロードさせる
void DownloadButton_OnClick()
{
Attachment.Download();
}
// ファイルの中身を読み取って処理する
var stream = Attachment.GetMemoryStream();
if (stream != null)
{
// stream を使った処理
}
// プログラム的にファイルをセット(外部 API の応答ファイルなど)
Attachment.SetFile("report.pdf", streamContent);- Field 共通プロパティ
- ImageViewer — 画像の表示だけしたい場合
- designer.settings — File Storage の定義
