现在的位置: 首页 > 综合 > 正文

phonegap 上传任意格式文件的js代码

2018年04月09日 ⁄ 综合 ⁄ 共 2070字 ⁄ 字号 评论关闭
/**FileTransfer*/
var ft;

/**
 * 清除上传进度,处理上传失败,上传中断,上传成功
 */
function clearProcess() {
	$('.upload_process_bar,#process_info').hide();
	ft.abort();
};

/**
 * 打开文件选择器,并让其支持所有文件的选择。
 */
function openFileSelector() {
	var source = navigator.camera.PictureSourceType.PHOTOLIBRARY;
	//描述类型,取文件路径
	var destinationType = navigator.camera.DestinationType.FILE_URI;
	//媒体类型,设置为ALLMEDIA即支持任意文件选择
	var mediaType = navigator.camera.MediaType.ALLMEDIA;
	var options={
		quality : 50,
		destinationType : destinationType,
		sourceType : source,
		mediaType : mediaType	
	};
	navigator.camera.getPicture(uploadFile,uploadBroken,options);
};

/**
 * 上传意外终止处理。
 * @param message
 */
function uploadBroken(message){
	alert(message);
	clearProcess();
};

/**
 * 上传过程回调,用于处理上传进度,如显示进度条等。
 */
function uploadProcessing(progressEvent){
	
	if (progressEvent.lengthComputable) {
		//已经上传
		var loaded=progressEvent.loaded;
		//文件总长度
		var total=progressEvent.total;
		//计算百分比,用于显示进度条
		var percent=parseInt((loaded/total)*100);
		//换算成MB
		loaded=(loaded/1024/1024).toFixed(2);
		total=(total/1024/1024).toFixed(2);
		$('#process_info').html(loaded+'M/'+total+'M');
		$('.upload_current_process').css({'width':percent+'%'});
	}
};

/**
 * 选择文件后回调上传。
 */
function uploadFile(fileURI) {
	var options = new FileUploadOptions();
	options.fileKey = "file";
	options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
	options.mimeType = "multipart/form-data";
	options.chunkedMode = false;
	ft = new FileTransfer();
	var uploadUrl=encodeURI("http://192.168.1.25:8531/kys/statistics/uploadFile");
	ft.upload(fileURI,uploadUrl,uploadSuccess, uploadFailed, options);
	//获取上传进度
	ft.onprogress = uploadProcessing;
	//显示进度条
	$('.upload_process_bar,#process_info').show();
}

/**
 * 上传成功回调.
 * @param r
 */
function uploadSuccess(r) {
	alert('文件上传成功:'+r.response);
	clearProcess();
}

/**
 * 上传失败回调.
 * @param error
 */
function uploadFailed(error) {
	alert('上传失败了。');
	clearProcess();
}

// function test(){
// 	$.ajax({
// 	  type: 'POST',
// 	  url: "http://192.168.1.25:8531/kys/statistics/uploadFile",
// 	  data: {},
// 	  dataType: 'json',
// 	  success: function(data){
// 			alert("=_=");
// 		}
	  
// 	});
// }

/**
 * 页面实例化回调.
 */
document.addEventListener("deviceready", function(){
	$(function(){
		 // $('#upload_file_link').click(test);
		 $('#upload_file_link').click(openFileSelector);
	});
}, false);


【上篇】
【下篇】

抱歉!评论已关闭.