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

来源:互联网 发布:淘宝网页无法登陆 编辑:程序博客网 时间:2024/05/02 04:51
/**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);//换算成MBloaded=(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);