整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

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

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

          博客園注冊(cè)賬號(hào)有些天了,感覺有些許欣慰,自己寫的東西有人在看,有人在評(píng)論很是開心。(ps: 滿足一下虛榮心吧!)

          廢話不多說了,說一下今天給大家分享的是 html5上傳圖片。我們是在移動(dòng)端使用的,但是這個(gè)在pc上也通用兼容性我只在谷歌測(cè)試過。之前一直用的angular寫的《用HTML5的File API做上傳圖片預(yù)覽能》。今天摒棄angular的東西分享一個(gè)html5 + js 圖片上傳案例。那么今天還是按照一定的步驟來講吧。

          HTML 上傳圖片

          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。

          .con4{
               width: 80%;
               height: auto;
               overflow: hidden;
               margin: 15% auto 0 auto;
               color: #FFFFFF;
          }
          .con4 .btn{
               width: 45%;
               height: 40px;
               line-height: 40px;
               text-align: center;
               background: #d8b49c;
               display: block;
               font-size: 16px;
               border-radius: 5px;
          }
          .upload{
               float: left;
               position: relative;
          }
          .upload_pic{
               display: block;
               width: 100%;
               height: 40px;
               position: absolute;
               left: 0;
               top: 0;
               opacity: 0;
               border-radius: 5px;
          }

          Javascript

          通過getElementById獲取節(jié)點(diǎn),判斷瀏覽器的兼容性,對(duì)于不支持FileReader接口的瀏覽器將給出一個(gè)提示并禁用input,否則監(jiān)聽input的change事件。

          //獲取上傳按鈕
          var input1=document.getElementById("upload"); 
           
          if(typeof FileReader==='undefined'){ 
               //result.innerHTML="抱歉,你的瀏覽器不支持 FileReader"; 
               input1.setAttribute('disabled','disabled'); 
          }else{ 
               input1.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[0]; 
               if(!/image\/\w+/.test(file.type)){ 
                   alert("文件必須為圖片!"); 
                   return false; 
               } 
               var reader=new FileReader; 
               reader.readAsDataURL(file); 
               //當(dāng)文件讀取成功便可以調(diào)取上傳的接口,想傳哪里傳哪里(PS: 你們可以把你們的靚照偷偷發(fā)給我!)
               reader.onload=function(e){ 
                   var data=this.result.split(',');
                   var tp=(file.type=='image/png')? 'png': 'jpg';
                   var a=data[1];
                   //需要上傳到服務(wù)器的在這里可以進(jìn)行ajax請(qǐng)求
                   ... ...
               }
          };

          寫到這里我們已經(jīng)完成了圖片上傳的功能了,大家有興趣的自己動(dòng)手嘗試一下,不懂的地方或者我寫錯(cuò)的地方一定要找我哦。

          FileReader的方法和事件

          參數(shù)/事件描述
          方法
          abort中斷讀取
          readAsText(file, [encoding])將文件讀取為文本
          該方法有兩個(gè)參數(shù),其中第二個(gè)參數(shù)是文本的編碼方式,默認(rèn)值為 UTF-8。這個(gè)方法非常容易理解,將文件以文本方式讀取,讀取的結(jié)果即是這個(gè)文本文件中的內(nèi)容。
          readAsBinaryString(file)將文件讀取二進(jìn)制碼
          通常我們將它傳送到后端,后端可以通過這段字符串存儲(chǔ)文件
          readAsDataURL(file)將文件讀取為DataURL
          將文件讀取為一串Data URL字符串,將小文件以一種特殊格式的URL地址直接讀入頁面。小文件指圖像與html等格式的文件。
          事件
          onabort數(shù)據(jù)讀取中斷時(shí)觸發(fā)
          onerror數(shù)據(jù)讀取出錯(cuò)時(shí)觸發(fā)
          onloadstart數(shù)據(jù)讀取開始時(shí)觸發(fā)
          onload數(shù)據(jù)讀取成功完成時(shí)觸發(fā)
          onloadend數(shù)據(jù)讀取完成時(shí)觸發(fā),無論成功失敗

          祝大家學(xué)習(xí)愉快!終于寫完了估計(jì)還是有錯(cuò)別字的。大家有不同見解的記得給我留言哦![小月博客]

          017年,將有超過75%的互聯(lián)網(wǎng)流量來自移動(dòng)端,移動(dòng)互聯(lián)網(wǎng)的商機(jī)無可限量,企業(yè)除了注重電腦網(wǎng)站建設(shè),也開始把目光轉(zhuǎn)向了手機(jī)建站,費(fèi)用自然成了決定企業(yè)選擇哪家建站公司的關(guān)鍵因素,收費(fèi)高大家承受不起,收費(fèi)低又擔(dān)心質(zhì)量沒保證。

          網(wǎng)站建設(shè)費(fèi)用主要分為兩部分,一部分是固定可以預(yù)見的,另一部分是潛在費(fèi)用,難以估計(jì)的。

          先說固定的部分,買域名、空間、建站系統(tǒng)。常規(guī)的.cn/.com域名,每年100元以內(nèi),手機(jī)站的空間800元以內(nèi)已經(jīng)能買很不錯(cuò)的,建站系統(tǒng)在網(wǎng)上有很多免費(fèi)的,要做HTML5網(wǎng)站的企業(yè)還要看清楚建站系統(tǒng)支不支持HTML5。固定費(fèi)用就1000元左右。

          潛在費(fèi)用主要是網(wǎng)站制作、推廣和維護(hù)的費(fèi)用,這才是很多企業(yè)建站的絆腳石。不會(huì)程序的企業(yè)找人做手機(jī)站,要加一般2000元起;推廣還要找人做SEO優(yōu)化或者百度競(jìng)價(jià),價(jià)格都要千元以上,維護(hù)人員工資也是一筆不小的開支。潛在費(fèi)用加起來,5000元以上是必須的。

          此外,還要了解服務(wù)商的技術(shù)實(shí)力、服務(wù)質(zhì)量和以往案例,以免服務(wù)商出問題后網(wǎng)站跟著遭殃。

          手機(jī)網(wǎng)站還有一個(gè)局限性,不一定兼容所有的手機(jī)屏幕尺寸,要做很多都市場(chǎng)調(diào)研,了解主流尺寸,分別定制專屬的手機(jī)網(wǎng)站,這個(gè)過程會(huì)耗費(fèi)企業(yè)很長(zhǎng)時(shí)間。

          其實(shí),中小企業(yè)要想擁有HTML5手機(jī)站還有一個(gè)辦法,就是把自己的網(wǎng)站做成響應(yīng)式。建站寶盒V9就能實(shí)現(xiàn),企業(yè)只需做一個(gè)電腦網(wǎng)站,手機(jī)站、微信站也有了,還能根據(jù)大家的屏幕大小個(gè)性化布局,帶給用戶新鮮的體驗(yàn)。全程傻瓜式操作,會(huì)打字就能建站,做HTML5網(wǎng)站就像做PPT一樣簡(jiǎn)單。后期只需維護(hù)一個(gè)后臺(tái),不用錢就能獲得免費(fèi)推廣。重點(diǎn)來了,價(jià)格十分接地氣,不用一千元就能搞定企業(yè)網(wǎng)站,有營銷功能的行業(yè)建站解決方案也就兩千元,真正為中小企業(yè)省錢,質(zhì)量用過的都說好。

          建站寶盒V9,免費(fèi)公測(cè)即將開啟:http://www.iisp.com/special/v9special/index.php

          更多建站&互聯(lián)網(wǎng)行業(yè)資訊,敬請(qǐng)關(guān)注微信公眾號(hào):耐思尼克(iisp-com)

          TML5實(shí)現(xiàn)大文件分片上傳思路,利用HTML5分片上傳超大文件思路,WEBUPLOADER 支持 超大上G,多附件上傳,JS 大文件分割/分片上傳,百度WEBUPLOADER上傳視頻等大文件,WEBUPLOAD組件實(shí)現(xiàn)文件上傳功能和下載功能,JS大文件切片上傳,斷點(diǎn)續(xù)傳實(shí)現(xiàn)DEMO,前端上傳大文件的解決方案,前端上傳大文件處理(切片、斷點(diǎn)續(xù)傳),前端大文件上傳優(yōu)化方案——分片上傳,vue大文件上傳解決方案,vue大文件上傳解決方案10G,vue大文件上傳解決方案50G,vue大文件上傳解決方案100G,html5如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,

          java如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,SpringBoot如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,SpringMVC如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,SpringCloud如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,

          webuploader如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,百度webuploader如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,html5實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,vue如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,前端如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,JavaScript如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,

          html5大文件斷點(diǎn)續(xù)傳、秒傳解決方案,html5大文件斷點(diǎn)續(xù)傳、加密上傳解決方案,html5大文件斷點(diǎn)續(xù)傳、加密存儲(chǔ)解決方案,html5大文件斷點(diǎn)續(xù)傳分片解決方案,html5大文件斷點(diǎn)續(xù)傳分塊解決方案,html5大文件斷點(diǎn)續(xù)傳分割解決方案,html5大文件斷點(diǎn)續(xù)傳切割解決方案,

          在網(wǎng)上找過相關(guān)的資料,論壇里面也有網(wǎng)友交流過,但是都不太令人滿意。

          給政府做的一個(gè)項(xiàng)目。實(shí)際上客戶那邊對(duì)具體的技術(shù)實(shí)際不關(guān)心。

          研發(fā)部門的同事調(diào)研過百度的webuploader這個(gè)組件,發(fā)現(xiàn)他實(shí)際上就是對(duì)Flash和HTML5進(jìn)行了一個(gè)封裝,本質(zhì)還是調(diào)的HTML5的API,之前在項(xiàng)目中也用過,嘗試過,但是最終都不太滿意,一個(gè)是兼容性非常差,說的是兼容IE,但是在IE用的是Flash,在很多用戶的電腦上用不了,卡頓崩潰發(fā)生的太頻繁,文件上傳的數(shù)量一多比如幾千個(gè),前端頁面就開始卡了,用戶體驗(yàn)非常差。這些問題研發(fā)部的同事都向百度反應(yīng)過,但是百度webuploader那邊一直沒人回,基本上沒人管,領(lǐng)導(dǎo)說要求付費(fèi)提供技術(shù)支持,那邊也是沒人回,聯(lián)系不上他們?nèi)魏稳恕?/p>

          webuploader這邊連個(gè)開發(fā)人員都聯(lián)系不到,這個(gè)是怎么回事?

          搞的我們領(lǐng)導(dǎo)現(xiàn)在基本上不怎么考慮國內(nèi)這些免費(fèi)開源的項(xiàng)目,研發(fā)部門的同事稱這些項(xiàng)目為免費(fèi)坑人項(xiàng)目。

          用戶上傳的文件比較大,有20G左右,直接用HTML傳的話容易失敗,服務(wù)器也容易出錯(cuò),需要分片,分塊,分割上傳。也就是將一個(gè)大的文件分成若干個(gè)小文件塊來上傳,另外就是需要實(shí)現(xiàn)秒傳功能和防重復(fù)功能,秒傳就是用戶如果上傳過這個(gè)文件,那么直接在數(shù)據(jù)庫中查找記錄就行了,不用再上傳一次,節(jié)省時(shí)間,實(shí)現(xiàn)的思路是對(duì)文件做MD5計(jì)算,將MD5值保存到數(shù)據(jù)庫,算法可以用MD5,或者CRC,或者SHA1,這個(gè)隨便哪個(gè)算法都行。

          分片還需要支持?jǐn)帱c(diǎn)續(xù)傳,現(xiàn)在HTML5雖然提供了信息記錄功能,但是只支持到了會(huì)話級(jí),也就是用戶不能關(guān)閉瀏覽器,也不能清空緩存。但是有的政府單位上傳大文件,傳了一半下班了,明天繼續(xù)傳,電腦一關(guān)結(jié)果進(jìn)度信息就丟失了,這個(gè)是他們的一個(gè)痛點(diǎn)。

          切片的話還有一點(diǎn)就是在服務(wù)器上合并,一個(gè)文件的所有分片數(shù)據(jù)上傳完后需要在服務(wù)器端進(jìn)行合并操作。

          聊下HTML5吧,怎么說呢,HTML5也就是chrome提供的一個(gè)API來實(shí)現(xiàn)文件分片,反正基本的需求,小文件用是能用,但是用起來多多少少還是有點(diǎn)別扭,擴(kuò)展性,安全性,穩(wěn)定性用戶那陣都不太滿意,關(guān)鍵是什么,我們是沒辦法對(duì)HTML5進(jìn)行擴(kuò)展,個(gè)性化和定制化開發(fā)的,基本上被谷歌給限制死了,這也是現(xiàn)在國產(chǎn)化的意義,希望能夠打破這個(gè)限制。不然公司的一些產(chǎn)品和業(yè)務(wù)不太好開展,總不能用戶提個(gè)需求,我們就說谷歌Chrome沒提供API,所我們就無法開發(fā)吧。這不是跟客戶扯呢。

          功能的話支持20G文件上傳和續(xù)傳,支持秒傳,支持文件夾上傳,支持在服務(wù)端保存文件夾層級(jí)結(jié)構(gòu),支持將文件夾層級(jí)結(jié)構(gòu)信息保存到數(shù)據(jù)庫中,支持下載時(shí)能夠?qū)⑽募A層級(jí)結(jié)構(gòu)下載下來,支持下載文件夾,下載文件夾支持?jǐn)帱c(diǎn)續(xù)傳,支持VUE2,VUE3,React,支持IE,Chrome和信創(chuàng)國產(chǎn)化環(huán)境,比如銀河麒麟,統(tǒng)信UOS,龍芯,支持加密傳輸,包括加密上傳,加密下載,加密算法支持國密SM4,支持云對(duì)象存儲(chǔ),比如華為云,阿里云,騰訊云,七牛云,AWS,MinIO,FastDFS,需要提供手機(jī),QQ,微信,郵箱等聯(lián)系方式,提供7*24小時(shí)技術(shù)支持,提供長(zhǎng)期技術(shù)支持和維護(hù)服務(wù),提供遠(yuǎn)程1對(duì)1技術(shù)指導(dǎo),提供二次開發(fā)指導(dǎo),提供文檔教程,提供視頻教程。1.下載示例

          https://gitee.com/xproer/up6-vue-cli



          將up6組件復(fù)制到項(xiàng)目中

          示例中已經(jīng)包含此目錄



          1.引入up6組件



          2.配置接口地址

          接口地址分別對(duì)應(yīng):文件初始化,文件數(shù)據(jù)上傳,文件進(jìn)度,文件上傳完畢,文件刪除,文件夾初始化,文件夾刪除,文件列表

          參考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de



          3.處理事件



          啟動(dòng)測(cè)試



          啟動(dòng)成功



          效果



          數(shù)據(jù)庫



          源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

          源碼報(bào)價(jià)單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl

          OEM版報(bào)價(jià)單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a

          控件源碼下載:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc


          主站蜘蛛池模板: 亚洲AV日韩AV天堂一区二区三区| bt7086福利一区国产| 波多野结衣电影区一区二区三区| 91精品一区二区综合在线| 91成人爽a毛片一区二区| 国产精品一区二区久久| 中文乱码人妻系列一区二区| 中文字幕无线码一区二区| 天海翼一区二区三区高清视频| 国产精品538一区二区在线| 国产乱码精品一区二区三| 日韩精品无码一区二区三区不卡 | 午夜在线视频一区二区三区| 国产人妖在线观看一区二区| 亲子乱av一区二区三区| 91精品一区二区三区久久久久| 亚洲av无一区二区三区| 精品一区二区三区色花堂| 精品少妇ay一区二区三区| 精品视频在线观看一区二区| 国产suv精品一区二区33| 成人h动漫精品一区二区无码| 国产精品一区二区久久精品无码| 精品人妻中文av一区二区三区| 免费精品一区二区三区在线观看 | 国产福利一区二区三区在线视频| 四虎成人精品一区二区免费网站| 国产成人无码AV一区二区在线观看| 亚洲爆乳精品无码一区二区| 国产福利一区二区在线视频| 亚洲国产视频一区| 狠狠综合久久AV一区二区三区| 亚洲一区欧洲一区| 日本精品高清一区二区| 成人精品一区二区激情| 一区高清大胆人体| 国产一区二区精品久久岳| 成人一区专区在线观看| 日本一区二区三区爆乳| 国产一区二区精品久久| 国产激情一区二区三区|