FileUpload

Sürükle-bırak alanlı bir dosya seçici. Klavye ve ekran okuyucu yolu içindeki “Dosya seç” butonudur; sürükleyip bırakmak fare için bir kısayoldur. Dosyalar tutulmadan önce accept, boyut ve sayı açısından kontrol edilir.

KararlıKaynak kod

Dosyaları buraya sürükle

PNG, JPG ya da PDF; her biri en fazla 2 MB. En fazla üç dosya.

Import

import { FileUpload, type FileRejection } from "@meridui/react";

Örnekler

Tek dosya

multiple olmadan yeni dosya eskisinin yerine geçer.

Bir görsel sürükle

Dosya yok

Devre dışı

Dosyaları buraya sürükle

Yüklemeler duraklatıldı.

Yükleme

FileUpload yalnızca dosya seçtirir. Dosyaları onValueChange içinden gönder (ya da form submit'inde: name verildiğinde tutulan dosyalar gerçek <input type="file">'a yansıtılır) ve ilerlemeyi Progress ile göster.

API referansı

Bir div render'lar; diğer div attribute'ları ve ref ona gider.

PropTipVarsayılanAçıklama
value / defaultValueFile[]–Controlled ya da başlangıç dosyaları.
onValueChange(files: File[]) => void–Her ekleme ya da kaldırmadan sonra tutulan tüm dosyalarla çağrılır.
onReject(rejections: FileRejection[]) => void–Kontrolden geçemeyen dosyalar ve nedenleri: file-invalid-type, file-too-large, file-too-small, too-many-files.
acceptstring–<input type="file">'daki gibi: "image/*,.pdf". Bırakılan dosyalarda da kontrol edilir.
multiplebooleanfalseBirden çok dosya tutar.
maxSize / minSizenumber–Byte cinsinden boyut sınırları.
maxFilesnumber–multiple ile tutulan en fazla dosya sayısı.
labelReactNode"Drag and drop files here"Alandaki ana satır. Türkçe arayüzde "Dosyaları buraya sürükle".
buttonLabelReactNode"Browse files"Butonun metni. Türkçe arayüzde "Dosya seç".
descriptionReactNode–Etiketin altındaki ipucu; butonu açıklar.
showFileListbooleantrueKaldır butonlu dosya listesini render'lar.
getRemoveLabel(file: File) => stringRemove {name}Kaldır butonunun erişilebilir adı.
getStatusText(count: number) => string"N file(s) selected"Seçim değişince okunan metin.
localestring–Dosya boyutları için locale (Intl birimleri).
iconReactNode–Etiketin üstündeki ikon.
invalid / disabled / requiredboolean–Durumlar; Field içinde ondan gelir.
namestring–Native form submit için dosya input'unun adı.

Stil verme

SınıfEleman
.mrd-file-uploadKök (data-dragging, data-invalid, data-disabled)
.mrd-file-upload__dropzoneKesikli bırakma alanı
.mrd-file-upload__icon, __label, __description, __buttonAlanın içeriği
.mrd-file-upload__list, __item, __name, __size, __removeDosya listesi

Erişilebilirlik

Sürükle-bırakın klavye karşılığı yoktur; bu yüzden bırakma alanı focus almaz, içindeki buton alır. Buton description ile açıklanır ve Field içinde önce kendi görünen metni, sonra alan etiketiyle adlandırılır. Dosya eklemek ya da kaldırmak görsel olarak gizli bir role="status" bölgesini günceller (“2 dosya seçildi”). Bir dosyayı kaldırmak focus'u “Dosya seç” butonuna döndürür.

TuşNe yapar
TabÖnce buton, sonra her kaldır butonu.
EnterSpaceButonda: dosya seçiciyi açar. Kaldır butonunda: o dosyayı kaldırır.

İlgili sayfalar

  • Field — bir kontrolün etrafında etiket, yardım metni ve hata.
  • Progress — yükleme ilerlemesi.