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

/**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);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值