BzUploader
آپلودر
پنجتا ظاهر مختلف برا اپلودر
دکمهفرم و اینپوتگروه اینپوتگروه دکمهانتخاب تاریختکمیل خودکارکارتنمایشلودینگدیالوگاعلانپیام عملیاتمنو کشوییکانتکس منوصفحه بندیلایت باکسدرختدیتاگریدنمودارتب و آکاردیوننویگیشن بارسایدبارتایم لاینویزارداسلایدرآپلودرادیتور متنتقویمابزار ایرانی
کامپوننتی پیدا نشد.
Dropzone
ظاهر پیش فرض: ناحیه ی کشیدن و رها کردن. رویداد OnFilesChanged لیست فایل ها را میده.
تعداد فایل: 0
@using BzCore.Components.Uploader
@using BzCore.Enums
<BzUploader Variant="BzUploaderVariant.Dropzone"
Multiple
MaxSizeMB="10"
OnFilesChanged="@(f => _count = f.Count)" />
<p>تعداد فایل: @_count</p>
@code {
private int _count;
}پنج ظاهر
کد همه یکی است و فقط Variant عوض میشه.
Compact
Button
Avatar
Gallery
| Variant | کاربرد |
|---|---|
Dropzone | ناحیه ی بزرگ کشیدن و رها کردن (پیش فرض) |
Compact | همان دراپ زون در فضای کم |
Button | فقط یک دکمه، داخل فرم ها |
Avatar | تصویر پروفایل، تک فایل |
Gallery | چند تصویر با پیش نمایش |
@using BzCore.Components.Uploader
@using BzCore.Enums
@* Only Variant changes between these. *@
<BzUploader Variant="BzUploaderVariant.Compact" Title="بارگذاری" Hint="کلیک یا کشیدن" />
<BzUploader Variant="BzUploaderVariant.Button" ButtonText="انتخاب فایل ها" />
<BzUploader Variant="BzUploaderVariant.Avatar" Multiple="false" Accept="image/*" />
<BzUploader Variant="BzUploaderVariant.Gallery" Accept="image/*" />محدودیت ها و خواندن فایل
با MaxSizeMB، MaxFiles و Accept اینپوت را محدود کنید؛ سپس فایل ها را در سرور ذخیره کنید.
| پارامتر | پیش فرض | توضیح |
|---|---|---|
Multiple | true | اجازه ی چند فایل |
MaxSizeMB | 10 | حداکثر حجم هر فایل |
MaxFiles | 20 | حداکثر تعداد فایل |
Accept | — | پسوندها یا MIME مجاز |
OnFilesChanged | — | IReadOnlyList<BzUploadFile> |
@using BzCore.Components.Uploader
@using BzCore.Enums
<BzUploader Variant="BzUploaderVariant.Dropzone"
Multiple
MaxSizeMB="2"
MaxFiles="3"
Accept=".pdf,.docx"
Title="فقط PDF و Word"
Hint="حداکثر 3 فایل، هرکدام تا 2 مگابایت"
OnFilesChanged="OnFiles" />
@if (_names.Count > 0)
{
<p>@string.Join(" | ", _names)</p>
}
@code {
private List<string> _names = new();
private async Task OnFiles(IReadOnlyList<BzUploadFile> files)
{
_names = files.Select(f => f.Name).ToList();
// Saving to disk — always re-check the limit on the server too.
foreach (var f in files)
{
var path = Path.Combine("uploads", f.Name);
await using var target = File.Create(path);
// f.File is the underlying IBrowserFile.
await using var source = f.File.OpenReadStream(2 * 1024 * 1024);
await source.CopyToAsync(target);
}
}
}
@*
BzUploadFile members:
string Name file name
long Size size in bytes
string ContentType MIME type
bool IsImage true when ContentType starts with image/
string? PreviewUrl preview for image variants
IBrowserFile File the raw Blazor file, for reading the stream
*@