安卓中HTML5图片上传实例详解
应用的平台环境:安卓webview;
涉及的技术点:
(1) :在开发中,安卓webview默认点击无法调用文件选择与相机拍照(其他的设备ios等浏览器没有此问题),需要让安卓开发同学在代码调整即可;
(2) 点击选择图片后如何展示在页面上呢?很多开发人员估计是直接获取 this.value,这是错误的,不可行。有2个API可以现实,new FileReader与window.URL.createObjectURL(最优);
new FileReader的实现如下:
upload
在安卓webview实战中,读取与写入速度相当慢,不推荐;
//-----------------------------------------------------------------------------------------
window.URL.createObjectURL实现如下:
<input type="file" name="" id="j-file"> <img src="" id='j-img' alt="" width="100%"> <button id='j-btn'>upload</button> <script type="text/javascript"> var o_file = document.getElementById('j-file'), o_btn = document.getElementById('j-btn'), o_img = document.getElementById('j-img'); o_file.addEventListener('change',function(event){ var file = event.target.files[0]; if(!file) return; var url = window.URL.createObjectURL(file); if(/image/.test(file.type)){ o_img.setAttribute('src',url); }else{ console.log('请选择图片'); } },false); o_btn.onclick = function(){ var data = new FormData(); data.append('file_a',o_file.files[0]); data.append('text','test'); console.log(data); } </script>
这技术的好处是可以不必把文件内容读取到javascript中,而是直接使用文件内容,速度很快;
(3)如何讲图片数据通过XHR对象传递给服务端呢?new FormData(),为序列化表单以及创建与表单格式相同的数据(XHR传输)提供了实现,FormData不必明确在xhr对象上设置请求头部(如果是表单里面图片上传,enctype需要设置multipart/form-data),XHR能自动识别,实例方法.append(key,value)自定义数据;
完整的代码例子如下:
<input type="file" name="" id="j-file"> <img src="" id='j-img' alt="" width="100%"> <button id='j-btn'>upload</button> <script type="text/javascript"> var o_file = document.getElementById('j-file'), o_btn = document.getElementById('j-btn'), o_img = document.getElementById('j-img'), target_file = null; o_file.addEventListener('change',function(event){ var file = event.target.files[0]; if(!file) return; target_file = file; var url = window.URL.createObjectURL(target_file); if(/image/.test(target_file.type)){ o_img.setAttribute('src',url); }else{ console.log('请选择图片'); } },false); o_btn.onclick = function(){ if(!target_file) return; //数据处理 var data = new FormData(); data.append('key',target_file); var xhr = new XMLHttpRequest(); if(xhr.upload){ xhr.upload.addEventListener("progress", function(e){ var loaded = e.loaded; //已经上传大小情况 var tot = e.total; //附件总大小 var per = Math.floor(100*loaded/tot); //已经上传的百分比 console.log(per+'%');//进度 }, false); } xhr.onreadystatechange = function(e) { if (xhr.readyState == 4) {if (xhr.status >=200&&xhr.status<300||xhr.status==304) {//上传成功 } } }; xhr.onloadend = function(){//无论失败或成功 } xhr.onerror = function(){ //网络失败 } // 开始上传 xhr.open("POST",'上传地址', true); xhr.send(data); } </script>
Atas ialah kandungan terperinci 安卓中HTML5图片上传实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Menurut berita pada 8 Mei, Google merancang untuk menambah isyarat skrin "klik dua jari" baharu pada sistem Android 15 untuk membesarkan skrin. Sistem Android Google pada masa ini menyediakan 3 cara untuk mengezum masuk pada skrin Operasi adalah seperti berikut: Butang tambahan skrin: Operasi yang paling mudah, tetapi ia mengambil sebahagian daripada skrin dan sentiasa mengezum di tengah. Gerak isyarat menahan kedua-dua kekunci kelantangan: mengambil lebih sedikit ruang skrin, tetapi mengambil masa paling lama untuk diaktifkan. Gerak isyarat mengetik skrin tiga kali dengan cepat: Kaedah ini juga membolehkan anda mengezum masuk pada bahagian tepat skrin yang anda ingin zum masuk. Walau bagaimanapun, selepas gerak isyarat ini didayakan, sistem Android akan menilai berdasarkan selang klik pengguna , yang akan memperlahankan peranti. Kaedah keempat telah diperkenalkan dalam kemas kini Android 15Beta1.2, iaitu gerak isyarat skrin "klik dua jari" baharu. Ia pada masa ini tidak ditambahkan dalam tetapan sistem.

Menurut berita pada 28 Jun, sumber @ibinguniverse menulis tweet, menyatakan bahawa telefon bimbit Samsung Galaxy S25 Ultra tidak akan mencubit tangan lagi, dan sudutnya akan dibulatkan, memudahkan pengguna untuk memegangnya untuk jangka masa yang lama. Fenye menyatakan dalam kandungan Weibonya bahawa sudut R badan telefon mudah alih Samsung Galaxy S25 Ultra boleh merujuk kepada telefon bimbit Galaxy Note7. Gambar yang dilampirkan adalah seperti berikut: Sumber juga berkata: Galaxy S25 Ultra mempunyai ketebalan badan 8.4mm, menentang trend dan menjadi lebih nipis, menjadikannya paling nipis antara model SUltra dalam beberapa tahun kebelakangan ini. S21U hingga S23U semuanya 8.9mm, dan S24U ialah 8.6mm. Reka bentuk Samsung masih tidak mahu berkompromi dengan imej, dan ia tidak mahu berkembang ke arah sekumpulan Oreos. Fenye

Menurut berita pada 17 Mei, jurutera Android Mishaal Rahman baru-baru ini menerbitkan catatan blog dan mendapati bahawa Android 15Beta2 telah melaraskan tetapan storan dan membahagikan "Sistem" kepada fail sistem dan fail sementara. Nota: Pengguna Android pada masa ini membuka tetapan storan dan boleh melihat ruang yang diduduki oleh pelbagai jenis fail, termasuk aplikasi, dokumen, gambar, permainan, audio, dsb. Terdapat juga ruang "Sistem" yang memaparkan ruang storan yang diduduki oleh fail sistem asas. Dalam sistem Android 15, selain melihat ruang yang diduduki oleh jenis fail di atas, Sistem dibahagikan lagi kepada OS (versi Android khusus) dan fail sementara sistem. Pengguna boleh melihat fail sementara dengan lebih intuitif

Terima kasih kepada netizen Wu Yanzu dari China Selatan kerana menyerahkan petunjuk! Menurut berita pada 6 Julai, syarikat AYANEO yang dikeluarkan di Weibo malam tadi, mempratonton pelancaran produk Pocket EVO baharu, yang mendakwa sebagai peranti pegang tangan Android perdana pertama di dunia yang dilengkapi dengan skrin warna berus tinggi 1080 POLED 7-inci 120Hz. Titik jualan utama AYANEOPocketEVO ialah penggunaan skrin OLED, yang memberikan warna yang lebih halus dan kelajuan tindak balas yang lebih pantas, memberikan pemain pengalaman permainan berkadar tinggi, berkadar bingkai tinggi dan hiburan audio-visual. Kadar muat semula 60Hz pegang tangan permainan fenyeAYANEO: AYANEOMicro: 3.5 inci 960x640 piksel paparan IPSLCD AYANEOPocketS: 6 inci 1920x1080 atau 25

Menurut berita pada 21 Jun, blogger digital terkenal Digital Chat Station mendedahkan bahawa kapasiti bateri telefon utama iQOO iQOO13 tahun ini ialah 6000mAh. Dilaporkan bahawa model siri iQOO12 terbaharu mempunyai kapasiti bateri 5000mAh Terima kasih kepada pembangunan dan pengkomersilan teknologi bateri anod karbon-silikon tahun ini, iQOO13 yang akan dikeluarkan pada separuh kedua tahun ini akan mendapat manfaat daripada teknologi bateri. , dan kapasiti akan terus meningkat daripada 5000mAh Kepada 6000mAh, ia adalah nipis dan ringan sambil mengambil kira hayat bateri yang panjang. Di samping itu, menurut penulis blog itu, siri iQOO13 akan menggunakan platform mudah alih Snapdragon 8Gen4, mewarisi telefoto periskop 3X, menambah cap jari ultrasonik bawah skrin satu titik, dan juga akan menyokong IP68 kalis habuk dan kalis air, terbina dalam X- bersaiz besar. paksi linear

Menurut berita pada 9 Mei, aplikasi rangka kerja maya popular "Tai Chi" pada platform Android telah tamat malam tadi. Pembangun rasminya mengumumkan malam tadi bahawa atas sebab peribadi, perisian enam tahun ini akan berhenti mengemas kini secara kekal. Sejak pelancaran "Tai Chi", pembangun telah berusaha sedaya upaya untuk mengekalkannya. Keseluruhan proses adalah secara sukarela dan tiada sebarang bayaran dikenakan. Namun, selepas bergelar bapa, dia merasakan masa dan tenaganya terhad dan tidak dapat meneruskan projek besar dan kompleks ini, lantas dia mengambil keputusan untuk berhenti mengemas kini. Perhalusi dan tulis semula kandungan yang diberikan seperti berikut: Menurut pemahaman editor, "Tai Chi", sebagai aplikasi rangka kerja maya yang komprehensif, dicirikan oleh fakta bahawa pengguna boleh menggunakan modul Xposed dengan mudah tanpa membuka kunci, mengakar atau memancarkan telefon. . Keserasian yang sangat baik

Berita 25 Julai: Menurut laporan media asing, Apple mungkin mendayakan storan yang lebih besar pada iPhone 2026, yang dijangka 2TB. Pendedahan terbaru daripada rantaian industri ialah Apple sedang mempercepatkan penggantian QLCNAND, sekali gus meningkatkan had atas storan terbina dalam kepada 2TB. Mengenai mengapa QLC digunakan, ia mungkin berkaitan dengan kawalan kos Apple. Malah, ada berita sebelum ini bahawa Apple mungkin menukar kapasiti storan (didayakan pada iPhone 16) dan tidak lagi menggunakan memori kilat NAND sel tiga lapisan (TLC) tetapi menggunakan sel empat lapisan pada model dengan kapasiti storan 1TB atau lebih. (QLC) memori kilat NAND. Berbanding dengan TLC, kelebihan QLC ialah setiap sel memori boleh menyimpan empat bit data.

Menurut berita pada 13 Mei, menurut berita terkini, Huawei akan beralih sepenuhnya ke platform HarmonyOS sendiri pada separuh kedua tahun ini dan meninggalkan sistem Android. Laporan itu menyebut bahawa versi HarmonyOS seterusnya dijangka dikeluarkan dengan siri perdana Mate70 Huawei yang akan datang. Dilaporkan bahawa HarmonyOSNext telah berkembang kepada 4,000 aplikasi, termasuk Alipay dan McDonald's. Menurut sumber, jumlah keseluruhan aplikasi HarmonyOSNext akan meningkat kepada 5,000 dalam tahun ini, dan matlamat Huawei adalah untuk mencapai 500,000 dalam jangka pendek. HarmonyOSNext direka dari awal dan sistem pengendalian dibangunkan secara bebas oleh Huawei. Walaupun set kod ini pada asalnya ditulis untuk peranti IoT,
