日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

phonegap+JQM拍照并上傳頭像到服務(wù)器

系統(tǒng) 2138 0
工作中需要將用戶頭像上傳到服務(wù)器。

需要這么幾步:

1,點(diǎn)擊img元素彈出Popup,選擇拍照或從圖片庫中選擇圖片。

2,上傳圖片

在phonega中拍照需要camera插件。
上傳文件需要file-transfer插件。

我在工程中安裝的所有插件如下:
    
        cordova plugin add org.apache.cordova.device
	cordova plugin add org.apache.cordova.network-information
	cordova plugin add org.apache.cordova.battery-status
	cordova plugin add org.apache.cordova.geolocation
	cordova plugin add org.apache.cordova.dialogs
	cordova plugin add org.apache.cordova.camera
	cordova plugin add org.apache.cordova.media-capture
	cordova plugin add org.apache.cordova.media
	cordova plugin add org.apache.cordova.vibration
	cordova plugin add org.apache.cordova.globalization
	cordova plugin add org.apache.cordova.splashscreen
	cordova plugin add org.apache.cordova.inappbrowser
	cordova plugin add org.apache.cordova.file-transfer

  


下面完成第一步:
建立img元素,當(dāng)點(diǎn)擊該元素的時(shí)候跳轉(zhuǎn)到#select_pic_page,#select_pic_page是個(gè)popup,
使用JQM是如下寫法:
    
<div>
	<a href="#select_pic_page" data-rel="popup" data-position-to="window" data-transition="pop"><img id="face" style="width:110px;height:110px;" src="img/default_face.jpg" /></a>
	<div data-role="popup" id="select_pic_page" data-overlay-theme="a">
		<ul data-role="listview" data-icon="false">
			<li onclick="onFaceImgClick(0)" style="border-width:0;border-color:#666;border-bottom-width: 1px;"><a style="padding:16px;font-weight:normal;" href="#" data-rel="back">Take a picture</a></li>
			<li onclick="onFaceImgClick(1)" style="border-width:0;"><a style="padding:16px;font-weight:normal;" href="#" data-rel="back">Select From Photo Library</a></li>
		</ul>
	</div>			
</div>

  


phonegap+JQM拍照并上傳頭像到服務(wù)器

phonegap+JQM拍照并上傳頭像到服務(wù)器


點(diǎn)擊popup中的選項(xiàng),第一個(gè)是臨時(shí)拍照,第二項(xiàng)是從圖片庫中選擇,用flag區(qū)分。
    
function onFaceImgClick(flag){
//	var w=$("#my_profile_page #face").width();
//	var h=$("#my_profile_page #face").height();
	var w=440;
	var h=440;
	
	var quality = device.platform=="Android"?100:50;
//	log("device.platform="+device.platform+";quality====="+quality);
	var cameraOptions;
	if(flag==0){
		cameraOptions={	
				quality : quality,//ios為了避免部分設(shè)備上出現(xiàn)內(nèi)存錯(cuò)誤,quality的設(shè)定值要低于50。
				destinationType : Camera.DestinationType.FILE_URI,//FILE_URI,DATA_URL
				sourceType : Camera.PictureSourceType.CAMERA,//CAMERA,SAVEDPHOTOALBUM
				allowEdit : true,
				encodingType : Camera.EncodingType.JPEG,//JPEG,PNG
				targetWidth : w,
				targetHeight : h
		};
	}else{
		cameraOptions={	
				quality : quality,//ios為了避免部分設(shè)備上出現(xiàn)內(nèi)存錯(cuò)誤,quality的設(shè)定值要低于50。
				destinationType : Camera.DestinationType.FILE_URI,//FILE_URI,DATA_URL
				sourceType : Camera.PictureSourceType.PHOTOLIBRARY,//CAMERA,SAVEDPHOTOALBUM
				allowEdit : true,
				encodingType : Camera.EncodingType.JPEG,//JPEG,PNG
				targetWidth : w,
				targetHeight : h
		};
	}
	navigator.camera.getPicture( onCameraSuccess, onCameraError, cameraOptions);
}

  


獲取圖片成功后執(zhí)行回調(diào)函數(shù)onCameraSuccess,參數(shù)imageURI是拍照成功后返回的圖片路徑
    
function onCameraSuccess(imageURI){//imageData
//	log("data==="+imageURI);
//	$("#my_profile_page #face").attr("src","data:image/jpeg;base64," + imageData);
	
	user.imgOriginalUrl=imageURI;
	$("#my_profile_page #face").attr("src",user.imgOriginalUrl);
//拍照成功后,需要上傳文件
	var fileName=imageURI.substr(imageURI.lastIndexOf('/') + 1);
	var options = new FileUploadOptions();
	options.fileKey = "fieldName";//圖片域名!!!
	if(fileName.indexOf('?')==-1){
		options.fileName = fileName;
	}else{
		options.fileName = fileName.substr(0,fileName.indexOf('?'));
	}
	
	 options.mimeType = "image/jpeg";
	//options.mimeType = "multipart/form-data";
	 options.chunkedMode = false;
	 
	 var params = {};
	 params.sid = user.sid;
	 params.fileType = "customer";
	 options.params = params;
	 
	 var uri = encodeURI(BASE_URL+"phoneCustomer/updateCustomerInfo.action?sid="+user.sid+"&fileType=customer");

	 var ft = new FileTransfer();
	 ft.upload(imageURI, uri, onFileUploadSuccess, onFileUploadFail, options);
}

function onCameraError(message){
	log('Failed because: ' + message);
}

function onFileUploadSuccess(result){
	log("========onFileUploadSuccess===========");
//	log("Code = " + result.responseCode+";Response = " + result.response+";Sent = " + result.bytesSent);
}
function onFileUploadFail(error){
	log("code = "+error.code+";upload error source = " + error.source+";upload error target = " + error.target);
}

  



在ios中,如果點(diǎn)擊無法調(diào)出camera,請(qǐng)務(wù)必執(zhí)行一下命令cordova build ios

phonegap+JQM拍照并上傳頭像到服務(wù)器


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 宁城县| 江华| 庆阳市| 会东县| 平山县| 二连浩特市| 尚义县| 潜江市| 甘肃省| 武鸣县| 九龙县| 宜黄县| 呼伦贝尔市| 奉节县| 桦川县| 陇川县| 通河县| 扶绥县| 咸宁市| 宁陕县| 庆元县| 惠东县| 西盟| 和龙市| 涪陵区| 云南省| 南和县| 鄢陵县| 启东市| 德庆县| 南靖县| 荔浦县| 韩城市| 合山市| 滨州市| 永嘉县| 龙井市| 礼泉县| 梨树县| 神木县| 车致|