解決辦法找了下,PC上有些是把這個input換成flash,采用html' target='_blank'>jquery的工具庫比如uploadify來做,但是移動端大部分瀏覽器是不支持flash的。所以最后采用的辦法還是用form表單的形式,只是把這個form和input的透明度設置為0,讓它們和準備顯示的內容同時在一個p中,顯示的內容可以做成自己想要的樣子。代碼如下:
復制代碼
代碼如下:
!DOCTYPE html html head meta charset= UTF-8 meta name= viewport content= width=device-width,initial-scale=1.0,user-scalable=no title /title style p{width: 100%;} .logo img{display:block; margin:0 auto;} .upload{position: relative;width: 80px;height: 18px;line-height: 18px;background: #2fc7c9;text-align: center; color: #FFF;padding: 0px 5px;-webkit-border-radius: 2px;border-radius: 2px; margin: 0 auto; .upload form{width:100%;position:absolute; left:0; top:0;opacity:0; filter:alpha(opacity=0);} .upload form input{width: 100%;} /style /head body p >
樣子如上圖,這樣展現就在“上傳圖片”這個p標簽中,點擊它就有選擇file的效果
二、JS代碼
我這邊寫的蠻簡單的,只是用了下h5上傳的的基本功能
html代碼如下,action為要請求的路徑,我這邊做的是當文件發生改變時就上傳修改頭像,input標簽的name屬性不能省去,具體跟后端接口有關復制代碼
代碼如下:
form id= uploadForm enctype= multipart/form-data method= post action= XXXXXX input type= file name= imageFile id= imageFile onchange= fileSelected() / /form var iMaxFilesize = 2097152; //2M window.fileSelected = function() { var oFile = document.getElementById( imageFile ).files[0]; //讀取文件 var rFilter = /^(image//bmp|image//gif|image//jpeg|image//png|image//tiff)$/i; if (!rFilter.test(oFile.type)) { alert( 文件格式必須為圖片 return; if (oFile.size iMaxFilesize) { alert( 圖片大小不能超過2M return; var vFD = new FormData(document.getElementById( uploadForm )), //建立請求和數據 oXHR = new XMLHttpRequest(); oXHR.addEventListener( load , function(resUpload) { //成功 }, false); oXHR.addEventListener( error , function() { //失敗 }, false); oXHR.addEventListener( abort , function() { //上傳中斷 }, false); oXHR.open( POST , actionUrl); oXHR.send(vFD); };以上內容給大家分享了HTML5實現簡單圖片上傳所遇到的問題及解決辦法的相關知識,希望對大家有所幫助。
相關推薦:
Html5實現二維碼掃描并解析
HTML5實現分享到微信好友朋友圈QQ好友QQ空間微博二維碼功能
以上就是HTML5實現簡單圖片上傳所遇到的問題及解決辦法 的詳細內容,html教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答