Html5上傳圖片 移動(dòng)端、PC端通用代碼

廢話不多說了,說一下今天給大家分享的是 html5上傳圖片。我們是在移動(dòng)端使用的,但是這個(gè)在pc上也通用兼容性我只在谷歌測(cè)試過。之前一直用的angular寫的《用HTML5的File API做上傳圖片預(yù)覽能》。今天摒棄angular的東西分享一個(gè)html5 + js 圖片上傳案例。那么今天還是按照一定的步驟來講吧。
HTML 第一步創(chuàng)建html,我們?cè)陧撁嬷蟹胖靡粋€(gè)文件選擇的input#upload(PS:偷懶一下,這里就不再次寫案例了直接復(fù)制的我們的頁面)
- <div class="con4">
- <span class="btn upload">上傳<input type="file" class="upload_pic" id="upload" /></span>
- </div>
CSS注:css 寫的有些亂哈,看不懂的可以問我,或者直接自己寫一下就ok。
- con{
- width: %;
- height: auto;
- overflow: hidden;
- margin: % auto auto;
- color: #FFFFFF;
- }
- con .btn{
- width: %;
- height: px;
- line-height: px;
- text-align: center;
- background: #dbc;
- display: block;
- font-size: px;
- border-radius: px;
- }
- upload{
- float: left;
- position: relative;
- }
- upload_pic{
- display: block;
- width: %;
- height: px;
- position: absolute;
- left: ;
- top: ;
- opacity: ;
- border-radius: px;
- }
Javascript
通過getElementById獲取節(jié)點(diǎn),判斷瀏覽器的兼容性,對(duì)于不支持FileReader接口的瀏覽器將給出一個(gè)提示并禁用input,否則監(jiān)聽input的change事件。
- //獲取上傳按鈕
- var input = document.getElementById("upload");
- if(typeof FileReader==='undefined'){
- //result.innerHTML = "抱歉,你的瀏覽器不支持 FileReader";
- input.setAttribute('disabled','disabled');
- }else{
- input.addEventListener('change',readFile,false);
- }
然后,當(dāng)file_input的change事件觸發(fā)時(shí),調(diào)用函數(shù)readFile()。在readFile中,我們首先獲取file對(duì)象,然后通過file的type屬性來檢測(cè)文件類型,我們當(dāng)然只允許選擇圖像類型的文件,然后我們new一個(gè)FileReader實(shí)例,并調(diào)用readAsDataURL方法來讀取選中的圖像文件,最后在onload事件中,獲取到成功讀取的文件內(nèi)容,并以插入一個(gè)img節(jié)點(diǎn)的方式顯示選中的圖片。
- function readFile(){
- var file = this.files[];
- if(!/image\/\w+/.test(file.type)){
- alert("文件必須為圖片!");
- return false;
- }
- var reader = new FileReader();
- reader.readAsDataURL(file);
- //當(dāng)文件讀取成功便可以調(diào)取上傳的接口,想傳哪里傳哪里(PS: 你們可以把你們的靚照偷偷發(fā)給我?。?nbsp;
- reader.onload = function(e){
- var data = this.result.split(',');
- var tp = (file.type == 'image/png')? 'png': 'jpg';
- var a = data[];
- //需要上傳到服務(wù)器的在這里可以進(jìn)行ajax請(qǐng)求
- ... ...
- }
- };
寫到這里我們已經(jīng)完成了圖片上傳的功能了,大家有興趣的自己動(dòng)手嘗試一下,不懂的地方或者我寫錯(cuò)的地方一定要找我哦。 FileReader的方法和事件
相關(guān)文章
HTML5 和小程序?qū)崿F(xiàn)拍照?qǐng)D片旋轉(zhuǎn)、壓縮和上傳功能
這篇文章主要介紹了HTML5 和小程序?qū)崿F(xiàn)拍照?qǐng)D片旋轉(zhuǎn)、壓縮和上傳功能,需要的朋友可以參考下2018-10-08H5 video poster屬性設(shè)置視頻封面的方法
這篇文章主要介紹了H5 video poster屬性設(shè)置視頻封面的方法的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2020-05-25HTML5 video 上傳預(yù)覽圖片視頻如何設(shè)置、預(yù)覽視頻某秒的海報(bào)幀
這篇文章主要介紹了HTML5 video 上傳預(yù)覽圖片視頻如何設(shè)置、預(yù)覽視頻某秒的海報(bào)幀問題,需要的朋友可以參考下2018-08-28HTML5+CSS3實(shí)現(xiàn)無插件拖拽上傳圖片(支持預(yù)覽與批量)
本篇文章主要介紹了HTML5+CSS3實(shí)現(xiàn)無插件拖拽上傳圖片(支持預(yù)覽與批量),現(xiàn)在html5提供了API以及File,F(xiàn)ileReader,XMLHttpRequest等強(qiáng)大的API,為我們拖放實(shí)現(xiàn)上傳提供2017-01-05使用spring mvc+localResizeIMG實(shí)現(xiàn)HTML5端圖片壓縮上傳的功能
這篇文章主要介紹了使用spring mvc+localResizeIMG實(shí)現(xiàn)HTML5端圖片壓縮上傳的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-16深入研究HTML5實(shí)現(xiàn)圖片壓縮上傳功能
下面小編就為大家?guī)硪黄钊胙芯縃TML5實(shí)現(xiàn)圖片壓縮上傳功能。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家。也給大家一個(gè)參考,一起跟隨小編過來看看吧2016-03-25html5 canvas移動(dòng)瀏覽器上實(shí)現(xiàn)圖片壓縮上傳
這篇文章主要為大家詳細(xì)介紹了html5 canvas移動(dòng)瀏覽器上實(shí)現(xiàn)圖片壓縮上傳的相關(guān)方法,提出了解決方法,分享了解決問題的思路,感興趣的小伙伴們可以參考一下2016-03-11- 這篇文章主要介紹了基于HTML5實(shí)現(xiàn)多張圖片上傳功能,在單張圖片上傳的基礎(chǔ)上實(shí)現(xiàn)多張圖片上傳功能,感興趣的小伙伴們可以參考一下2016-03-11
- 這篇文章主要介紹了Html5實(shí)現(xiàn)單張、多張圖片上傳功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-28