Berurusan dengan file adalah salah satu operasi paling umum untuk aplikasi di web. Secara tradisional, pengguna perlu mengunggah file, membuat beberapa perubahan, lalu mengunduhnya lagi, menghasilkan salinan di folder Unduhan. Dengan File System Access API, pengguna kini dapat membuka file secara langsung, melakukan modifikasi, dan menyimpan kembali perubahan ke file aslinya Show
Cara modernMenggunakan metode showOpenFilePicker() File System Access APIUntuk membuka file, panggil Dukungan browser. chrome 86, Didukung 86 firefox, Tidak didukung × edge 86, Supported 86 safari, Not supported × Cara klasikMenggunakan elemen <input type="file">Elemen Dukungan browser. chrome true, Didukung ✅ firefox 1, Didukung 1 edge 12, Supported 12 safari 1, Supported 1 Peningkatan progresifMetode di bawah ini menggunakan File System Access API jika didukung dan kembali ke pendekatan klasik. Dalam kedua kasus, fungsi mengembalikan larik file, tetapi jika API Akses Sistem File didukung, setiap objek file juga memiliki 0, sehingga Anda dapat secara opsional membuat serial pegangan ke disk Ketika ada situasi di mana kita perlu menghapus item dari DOM melalui JavaScript, kita tidak dapat melakukannya langsung dari objek FileList. Kita perlu menetapkan yang berikut ini ke sebuah array $('input:file#upload')[1].files_ Setelah itu hapus item dari array ini menggunakan sambatan atau metode pilihan kami dan gunakan array itu Cara lain adalah mengunggah file dengan bantuan pengunggah file HTML dan kemudian menghapus objek terkait dengan menggunakan JavaScript Menggunakan File API, konten web dapat meminta pengguna untuk memilih file lokal dan kemudian membaca konten file tersebut. Pemilihan ini dapat dilakukan dengan menggunakan elemen HTML 4 atau dengan drag and dropPertimbangkan HTML ini
File API memungkinkan untuk mengakses 5 berisi 6 objek yang mewakili file yang dipilih oleh penggunaAtribut _7 pada elemen 8 memungkinkan pengguna untuk memilih beberapa fileMengakses file yang dipilih pertama menggunakan pemilih DOM klasik _Dimungkinkan juga (tetapi tidak wajib) untuk mengakses 5 melalui acara 0. Anda perlu menggunakan _1 untuk menambahkan pendengar acara 0, seperti ini
Objek _5 yang disediakan oleh DOM mencantumkan semua file yang dipilih oleh pengguna, masing-masing ditetapkan sebagai objek 6. Anda dapat menentukan berapa banyak file yang dipilih pengguna dengan memeriksa nilai atribut 5 daftar file
Objek _6 individu dapat diambil dengan mengakses daftar sebagai larik
Loop ini mengulangi semua file dalam daftar file Ada tiga atribut yang disediakan oleh objek _6 yang berisi informasi berguna tentang file tersebut _8Nama file sebagai string hanya-baca. Ini hanyalah nama file, dan tidak menyertakan informasi jalur apa pun _9Ukuran file dalam byte sebagai integer 64-bit hanya-baca _0Jenis file MIME sebagai string hanya-baca atau 1 jika jenisnya tidak dapat ditentukanContoh berikut menunjukkan kemungkinan penggunaan properti _9
Anda dapat menyembunyikan elemen 3 file yang diakui jelek dan menyajikan antarmuka Anda sendiri untuk membuka pemilih file dan menampilkan file atau file mana yang telah dipilih pengguna. Anda dapat melakukan ini dengan menata elemen input dengan 4 dan memanggil metode 5 pada elemen 3Pertimbangkan HTML ini
Kode yang menangani event _7 dapat terlihat seperti ini
Anda dapat menata _8 sesuka AndaUntuk memungkinkan membuka pemilih file tanpa menggunakan JavaScript (metode click()), elemen 9 dapat digunakan. Perhatikan bahwa dalam hal ini elemen input tidak boleh disembunyikan menggunakan 0 (atau 1), jika tidak, label tidak dapat diakses dengan keyboard. Gunakan teknik visual-tersembunyi sebagai gantinyaPertimbangkan HTML ini
dan CSS ini
Tidak perlu menambahkan kode JavaScript untuk memanggil 2. Juga dalam hal ini Anda dapat menata elemen label sesuai keinginan. Anda perlu memberikan isyarat visual untuk status fokus bidang input tersembunyi pada labelnya, baik berupa garis luar seperti yang ditunjukkan di atas, atau warna latar atau bayangan kotak. (Pada saat penulisan, Firefox tidak menunjukkan isyarat visual ini untuk 3 elemen. )Anda juga dapat membiarkan pengguna menyeret dan melepaskan file ke dalam aplikasi web Anda Langkah pertama adalah membuat zona penurunan. Tepatnya bagian mana dari konten Anda yang akan menerima drop dapat bervariasi tergantung pada desain aplikasi Anda, tetapi membuat elemen menerima drop event itu mudah _0Dalam contoh ini, kami mengubah elemen dengan ID 4 menjadi zona lepas. Hal ini dilakukan dengan menambahkan pendengar untuk 5, 6, dan 7 acaraKami sebenarnya tidak perlu melakukan apa pun dengan peristiwa 5 dan 6 dalam kasus kami, jadi kedua fungsi ini sederhana. Mereka hanya menghentikan penyebaran acara dan mencegah terjadinya tindakan default _1Keajaiban nyata terjadi pada fungsi 0 _2Di sini, kami mengambil bidang _1 dari acara, menarik daftar file darinya, lalu meneruskannya ke 2. Mulai saat ini, penanganan file sama apakah pengguna menggunakan elemen 8 atau drag and dropKatakanlah Anda sedang mengembangkan situs web berbagi foto hebat berikutnya dan ingin menggunakan HTML untuk menampilkan pratinjau thumbnail gambar sebelum pengguna benar-benar mengunggahnya. Anda dapat menetapkan elemen input atau zona jatuhkan seperti yang telah dibahas sebelumnya dan meminta mereka memanggil fungsi seperti fungsi 2 di bawah _3Di sini loop kami menangani file yang dipilih pengguna melihat atribut 0 setiap file untuk melihat apakah tipe MIME-nya dimulai dengan string " 6"). Untuk setiap file yang merupakan gambar, kami membuat elemen 7 baru. CSS dapat digunakan untuk menetapkan batas atau bayangan yang cantik dan untuk menentukan ukuran gambar, sehingga tidak perlu dilakukan di siniSetiap gambar memiliki kelas CSS _8 yang ditambahkan ke dalamnya, membuatnya mudah ditemukan di pohon DOM. Kami juga menambahkan atribut _9 ke setiap gambar yang menentukan 6 untuk gambar tersebut; . Kami menggunakan _1 untuk menambahkan thumbnail baru ke area pratinjau dokumen kamiSelanjutnya, kami menetapkan _2 untuk menangani pemuatan gambar secara asinkron dan melampirkannya ke elemen 7. Setelah membuat objek 2 baru, kami menyiapkan fungsi 5 dan kemudian memanggil 6 untuk memulai operasi baca di latar belakang. Ketika seluruh konten file gambar dimuat, mereka diubah menjadi URL 7 yang diteruskan ke callback 5. Implementasi kami dari rutinitas ini menyetel atribut _7 elemen 0 ke gambar yang dimuat yang menghasilkan gambar yang muncul di thumbnail di layar penggunaMetode DOM 1 dan 2 memungkinkan Anda membuat string URL sederhana yang dapat digunakan untuk mereferensikan data apa pun yang dapat dirujuk menggunakan objek DOM 6, termasuk file lokal di komputer penggunaSaat Anda memiliki objek _6 yang ingin Anda rujuk dengan URL dari HTML, Anda dapat membuat URL objek untuknya seperti ini _4URL objek adalah string yang mengidentifikasi objek 6. Setiap kali Anda memanggil 1, URL objek unik dibuat meskipun Anda sudah membuat URL objek untuk file itu. Masing-masing harus dilepaskan. Meskipun dirilis secara otomatis saat dokumen diturunkan, jika laman Anda menggunakannya secara dinamis, Anda harus melepaskannya secara eksplisit dengan memanggil 2 _5Contoh ini menggunakan URL objek untuk menampilkan thumbnail gambar. Selain itu, ini menampilkan informasi file lain termasuk nama dan ukurannya HTML yang menyajikan antarmuka terlihat seperti ini _6Ini menetapkan elemen _3 file kami serta tautan yang memanggil pemilih file (karena kami menyembunyikan input file untuk mencegah antarmuka pengguna yang kurang menarik ditampilkan). Ini dijelaskan di bagian , seperti metode yang memanggil pemilih fileMetode _2 berikut _7Ini dimulai dengan mengambil URL dari 0 dengan ID 1. Ini adalah blok tempat kami akan memasukkan daftar file kami, termasuk thumbnailJika objek _5 diteruskan ke 2 adalah 4, kita menyetel HTML bagian dalam dari blok untuk menampilkan "Tidak ada file yang dipilih. ". Jika tidak, kami mulai membuat daftar file kami, sebagai berikut
Ini adalah demo langsung dari kode di atas Hal lain yang mungkin ingin Anda lakukan adalah membiarkan pengguna mengunggah file atau file yang dipilih (seperti gambar yang dipilih menggunakan contoh sebelumnya) ke server. Ini dapat dilakukan secara asinkron dengan sangat mudah Melanjutkan dengan kode yang membuat thumbnail pada contoh sebelumnya, ingatlah bahwa setiap gambar thumbnail ada di kelas CSS 8 dengan 6 terkait yang dilampirkan dalam atribut 9. Ini memungkinkan kami memilih semua gambar yang telah dipilih pengguna untuk diunggah menggunakan 09, seperti ini _8Baris 2 mengambil _10, disebut 11, dari semua elemen dalam dokumen dengan kelas CSS 8. Dalam kasus kami, ini akan menjadi semua thumbnail gambar. Setelah kami memiliki daftar itu, mudah untuk melewatinya dan membuat instance 13 baru untuk masing-masing. Masing-masing menangani pengunggahan file yang sesuaiFungsi 13 menerima dua masukan. elemen gambar dan file untuk membaca data gambar _9Fungsi 15 yang ditunjukkan di atas membuat throbber, yang digunakan untuk menampilkan informasi progres, lalu membuat 16 untuk menangani pengunggahan dataSebelum benar-benar mentransfer data, beberapa langkah persiapan dilakukan
Contoh ini, yang menggunakan PHP di sisi server dan JavaScript di sisi klien, menunjukkan pengunggahan file secara asinkron 0URL objek dapat digunakan untuk hal lain selain gambar. Mereka dapat digunakan untuk menampilkan file PDF yang disematkan atau sumber daya lainnya yang dapat ditampilkan oleh browser Bagaimana cara menghapus satu file tertentu yang dipilih dari kontrol file input?5 Jawaban . Tambahkan pendengar acara perubahan input file normal Ulangi setiap file dari acara perubahan, filter untuk validasi yang diinginkan Dorong file yang valid ke dalam larik terpisah Gunakan FileReader API untuk membaca file secara lokal Kirim file yang valid dan diproses ke server Bagaimana cara menghapus nilai file tipe input dalam JavaScript?maka lakukan saja. $("#fileControl"). val(''); untuk mereset kontrol file.
Bagaimana cara menghapus file dari FileList JavaScript?Satu cara untuk menghapus file dari JavaScript FileList adalah menggunakan operator spread untuk mengubah FileList menjadi array. Kemudian kita dapat memanggil splice untuk menghapus file yang kita inginkan .
Bagaimana cara menghapus file yang dipilih dari file tipe input menggunakan jQuery?Mereset input file dimungkinkan dan cukup mudah dengan jQuery dan HTML. Untuk itu, Anda harus membungkus . |