首先說(shuō)appcan內(nèi)部實(shí)現(xiàn)了file標(biāo)簽,我們就不用糾結(jié)這個(gè)問(wèn)題了,還提供了上傳百分比哦,然后下面的方法按從上到下依次看,很簡(jiǎn)單。 <div class="head_btn btn upload fl" id="upload">上傳</div><!--樣式自己定哦,保留id就可以了--> <script> window.uexOnload = function(){ /*圖片上傳事件 一定要放在uexOnload里面start*/ uexWindow.cbActionSheet = actionSheetSuccess; uexImageBrowser.cbPick = ready_upload; uexCamera.cbOpen = ready_upload; uexWidgetOne.cbError = uexWidgetOneErrorCb; uexUploaderMgr.onStatus = UploaderMgronStatus; uexUploaderMgr.cbCreateUploader = UploaderMgrCreateUploaderCb; /*end*/ document.getElementById("upload").addEventListener("touchstart", showActionSheet, false);//也可以用點(diǎn)擊事件,但這個(gè)反應(yīng)快。 } var uploadHttp = root_url;//服務(wù)器的上傳處理地址//htttp://192.168.1.93/main.php var file_src='';//本地文件地址 function showActionSheet(){//彈出上傳選擇框 var value = "拍照上傳;本地上傳"; var mycars=value.split(";"); uexWindow.actionSheet("","取消",mycars); } function actionSheetSuccess(opId, dataType, data)//判斷上傳選擇 { if(data == 0)//相機(jī) { uexCamera.open(); } else if(data == 1)//本地瀏覽 { uexImageBrowser.pick(); } } function ready_upload(opCode, dataType, data)//獲取已選擇照片 { file_src=data; show_loading('已上傳0%','20%'); uexUploaderMgr.createUploader('1',uploadHttp);//創(chuàng)建上傳對(duì)象 } function UploaderMgrCreateUploaderCb(opCode,dataType,data){//上傳對(duì)象創(chuàng)建結(jié)果 if(data == 0){//創(chuàng)建成功 uexUploaderMgr.uploadFile(opCode,file_src,"file_data",'1');//開(kāi)始上傳,//file_data就是通常頁(yè)面的input type=‘file’標(biāo)簽的nme;服務(wù)器接收這個(gè)name就夠了,如$_FILES['file_data'];appcan內(nèi)部實(shí)現(xiàn)了這個(gè)標(biāo)簽 }else{ uexWindow.closeToast(); uexWindow.toast('0','5',"上傳失敗",2000); } } function UploaderMgronStatus(opCode,fileSize,percent,server_msg,status){//當(dāng)前上傳狀態(tài),server_msg是服務(wù)器打印的信息 switch (status) { case 0://正在上傳 if(fileSize>2560000){ uexUploaderMgr.closeUploader(1); show_loading(parseInt(fileSize/1000)+'KB的圖片太大了,只能上傳2兆以下的圖片哦','40%'); setTimeout('hide_loading()',3000); return false; } else{ //jq('#loading_text').text('已上傳'+percent+'%'); show_loading('已上傳'+percent+'%','20%'); } break; case 1://上傳完畢 if(server_msg.length>1){ alert('上傳成功'); } else{ switch(server_msg){ case '1':alert('圖片格式不對(duì),允許上傳的格式是 .jpg .png .gif哦');break; case '2':alert('圖片的真實(shí)格式不對(duì)');break; case '3':alert('圖片太大了,只能上傳2兆以下的圖片哦');break; default:alert('未知錯(cuò)誤!'); break; } } uexUploaderMgr.closeUploader(1); hide_loading(); break; case 2: alert("上傳失敗"); uexUploaderMgr.closeUploader(1); hide_loadding(); break; } } function uexWidgetOneErrorCb(opCode, errorCode, errorInfo){ } </script> php,asp頁(yè)面很簡(jiǎn)單 ,接收‘file_data’這個(gè)文件信息就可以了,如$_FILES['file_data'];就是普通的上傳處理,這里就不寫(xiě)了。 然后 show_loading 和hide_loading是我用jquery寫(xiě)的讀取條,這里就不好拿出來(lái)獻(xiàn)丑了,大家可以自己寫(xiě)個(gè)好看的。 |
|
來(lái)自: 學(xué)海無(wú)涯GL > 《AppCan》