React Academy · Pelajaran

Input Fail dan Membaca Data Fail

Kendalikan , baca metadata fail dan pratonton imej dengan FileReader.

Pelajaran 2 daripada 413 langkah

Input Fail dan Membaca Data Fail ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

Dalam pelajaran ini, anda akan mengendalikan medan masukan fail dalam React, membaca metadata fail, melihat pratonton imej yang dipilih dan menggunakan API FileReader untuk memproses kandungan fail.

Elemen Medan Masukan Fail

Elemen `` tidak boleh dikawal oleh sifat nilai React — elemen ini sentiasa tidak terkawal. Baca fail yang dipilih daripada `e.target.files[0]` dalam pengendali onChange.
function FileInput() {
  const handleChange = (e) => {
    const file = e.target.files[0];
    console.log(file.name, file.size, file.type);
  };
  return <input type="file" onChange={handleChange} />;
}

Sifat Objek Fail

Objek fail melanjutkan Blob dan mempunyai: `name` (nama fail), `size` (bait), `type` (jenis MIME seperti 'image/png') dan `lastModified` (cap masa). Baca semua maklumat ini sebelum memuat naik atau memproses fail.

Menerima Jenis Fail Tertentu

Gunakan sifat `accept` untuk memberikan petunjuk kepada pelayar tentang jenis fail yang perlu dipaparkan. Gabungkan jenis MIME dan sambungan fail. Sentiasa lakukan pengesahan pada pelayan juga.
<input type="file" accept="image/png,image/jpeg,.pdf" />

Pemilihan Beberapa Fail

Tambahkan sifat `multiple` untuk membenarkan pemilihan beberapa fail. `e.target.files` mengembalikan FileList — tukarkannya kepada tatasusunan dengan Array.from() supaya anda boleh menggunakan kaedah tatasusunan.
<input type="file" multiple />

const files = Array.from(e.target.files);

Melihat Pratonton Imej dengan URL.createObjectURL

Cipta URL pratonton sementara untuk fail imej yang dipilih menggunakan `URL.createObjectURL(file)`. Ingat untuk membatalkannya dengan `URL.revokeObjectURL` selepas selesai bagi membebaskan memori.
const [preview, setPreview] = useState(null);

const handleChange = (e) => {
  const file = e.target.files[0];
  if (file) setPreview(URL.createObjectURL(file));
};

useEffect(() => {
  return () => { if (preview) URL.revokeObjectURL(preview); };
}, [preview]);

{preview && <img src={preview} alt="Preview" />}

Membaca Kandungan Fail dengan FileReader

Gunakan API FileReader untuk membaca kandungan fail sebagai teks atau URL data. Panggil `reader.readAsText(file)` untuk fail teks atau `reader.readAsDataURL(file)` untuk fail binari seperti imej.
const reader = new FileReader();
reader.onload = (e) => setContent(e.target.result);
reader.readAsText(file);

Pengesahan Saiz Fail

Sahkan saiz fail pada klien sebelum memuat naik. Tolak fail yang lebih besar daripada ambang dan paparkan mesej ralat.
const MAX_SIZE = 5 * 1024 * 1024; // 5 MB
if (file.size > MAX_SIZE) {
  setError('File must be under 5 MB');
  return;
}

Mengosongkan Medan Masukan Fail

Anda tidak boleh mengosongkan medan masukan fail dengan menetapkan nilainya kerana medan itu baca sahaja. Sebaliknya, tetapkan semula secara imperatif melalui rujukan atau dengan menukar sifat `key` medan masukan untuk memaksa pemasangan semula.
const inputRef = useRef();
const clear = () => { inputRef.current.value = ''; };
<input ref={inputRef} type="file" />

Menyimpan Rujukan Fail dalam Keadaan

Simpan objek fail itu sendiri dalam keadaan, bukan sekadar nama atau URL. Dengan cara ini, anda boleh memuat naik fail kemudian tanpa membacanya semula daripada DOM.
const [file, setFile] = useState(null);
const handleChange = (e) => setFile(e.target.files[0] || null);

Semakan Pantas

Kaedah manakah yang mencipta URL sementara untuk melihat pratonton fail imej yang dipilih dalam pelayar?

Ulang Kaji

Baca fail yang dipilih daripada e.target.files. Gunakan URL.createObjectURL untuk pratonton, FileReader untuk membaca kandungan, sahkan saiz pada klien dan simpan objek fail dalam keadaan untuk dimuat naik kemudian.

Seterusnya

Pelajaran seterusnya: **Antara Muka Muat Naik Fail Seret dan Lepas** — anda akan membina zon seret dan lepas dengan maklum balas visual menggunakan peristiwa React.
Percuma untuk bermula

Pelajari React dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
88
Pelajaran
324

Soalan Lazim

Adakah pelajaran “Input Fail dan Membaca Data Fail” percuma?

Ya — teks penuh “Input Fail dan Membaca Data Fail” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Input Fail dan Membaca Data Fail”?

Kendalikan , baca metadata fail dan pratonton imej dengan FileReader. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan React Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Input Fail dan Membaca Data Fail” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Input Tidak Terkawal dengan useRef
  2. Input Fail dan Membaca Data Fail
  3. Antara Muka Muat Naik Fail Seret dan Lepas
  4. Memuat Naik Fail ke API Bahagian Belakang
← Kembali ke React Academy