Lebih
Preview gambar sebelum upload
Aku ingin dapat melihat pratinjau file (gambar) sebelum di-upload. Preview tindakan yang harus dilaksanakan semua dalam browser tanpa menggunakan Ajax untuk meng-upload gambar.
Bagaimana saya bisa melakukan ini?
1466
22
Silakan lihat contoh kode di bawah ini:
Juga, anda dapat mencoba ini contoh di sini](http://jsfiddle.net/LvsYc/).
Ada beberapa cara yang dapat anda lakukan ini. Cara yang paling efisien akan menggunakan URL.createObjectURL() pada File dari <input>. Lulus URL ini untuk img.src untuk memberitahu browser untuk memuat gambar yang disediakan.
Berikut ini's contoh:
Anda juga dapat menggunakan FileReader.readAsDataURL() untuk mengurai file dari <input>. Ini akan membuat string dalam memori yang mengandung base64 representasi gambar.
Satu-liner solusi:
Kode berikut menggunakan objek Url, yang jauh lebih efisien dari data URL untuk melihat gambar besar (data URL yang besar adalah string yang berisi semua file data, sedangkan objek URL, singkat string referensi file data di memori):
Dihasilkan URL akan menjadi seperti:
Jawaban dari LeassTaTT bekerja dengan baik di "s" browser seperti FF dan Chrome. Solusi untuk IE ada, tetapi terlihat berbeda. Berikut keterangan dari cross-browser solusi:
Dalam HTML kita perlu dua pratinjau elemen, img untuk browser standar dan div untuk IE
HTML:
Dalam CSS kita tentukan sebagai berikut YAITU hal tertentu:
CSS:
Dalam HTML kita termasuk standar dan IE-spesifik Javascript:
Saya telah diedit @Ivan's jawaban untuk tampilan "Tidak ada Pratinjau yang Tersedia" gambar, jika tidak gambar:
Berikut ini's a beberapa file versi, berdasarkan Ivan Baev's jawaban.
HTML
JavaScript / jQuery
Membutuhkan jQuery 1.8 karena penggunaan $.parseHTML, yang seharusnya membantu dengan XSS mitigasi.
Ini akan bekerja out of the box, dan hanya ketergantungan yang anda butuhkan adalah jQuery.
Ya. Hal ini mungkin.
Html
JS
Anda bisa mendapatkan [Live Demo][1] dari sini.
Bersih dan sederhana [JSfiddle][1]
Ini akan berguna ketika anda menginginkan acara Tersebut dipicu tidak langsung dari div atau tombol.
Contoh dengan beberapa gambar menggunakan JavaScript (jQuery) dan HTML5
JavaScript (jQuery)
Markup (HTML)
Berikut adalah kode kerja.
Javascript:
Bagaimana menciptakan sebuah fungsi yang memuat file dan kebakaran acara adat. Kemudian melampirkan pendengar untuk input. Dengan cara ini kita memiliki lebih banyak fleksibilitas untuk menggunakan file, tidak hanya untuk melihat pratinjau gambar.
Mungkin saya kode isn't sebagai baik sebagai beberapa pengguna, tapi saya pikir anda akan mendapatkan titik itu. Di sini anda dapat melihat sebuah [contoh][1]
Coba ini
Bagaimana dengan solusi ini?
Hanya menambahkan data atribut "data-type=editable" untuk tag gambar seperti ini:
Dan script untuk proyek anda tentunya...
[Lihat demo di JSFiddle][1]
Saya telah membuat sebuah plugin yang dapat menghasilkan preview efek di IE 7+ berkat internet, tetapi memiliki beberapa keterbatasan. Aku memasukkannya ke halaman github sehingga lebih mudah untuk mendapatkannya
Untuk Beberapa upload gambar (Modifikasi @IvanBaev's Solusi)
http://jsfiddle.net/LvsYc/12330/
Semoga ini bisa membantu seseorang.
Dalam Bereaksi, jika file di alat peraga, anda dapat menggunakan:
bej {alat peraga.nilai instanceof File && ( <img src={URL.createObjectURL(alat peraga.nilai)}/> )}
It's my kode.Dukungan IE[6-9], chrome 17+、firefox、Opera 11+、Maxthon3
<input type="file" id="netBarBig" onchange="changeFile(ini)" />Berikut ini's solusi jika anda're menggunakan Bereaksi:
Ini akan melihat beberapa file sebagai gambar kecil pada suatu waktu
Html
`` <input id="ImageMedias" beberapa="beberapa" name="ImageMedias" type="file" menerima=".jfif,.jpg,.jpeg,.png,.gif" class="custom-file-input" nilai="">
`` **Script**$("#ImageMedias").change(function () { if (typeof (FileReader) != "undefined") { var dvPreview = $("#divImageMediaPreview"); dvPreview.html(""); $($(this)[0].file).masing-masing(fungsi () { var file = $(this); var reader = new FileReader(); pembaca.onload = function (e) { var img = $("<img />"); img.attr("style", "width: 150px; height:100px; padding: 10px"); img.attr("src", e.target.hasil); dvPreview.append(img); } pembaca.readAsDataURL(file[0]); }); } else { alert("browser Ini tidak mendukung HTML5 FileReader."); } });
Demo bekerja di Codepen
[Demo bekerja di jsfiddle][1]
Saya berharap ini akan membantu.