|
// 上传文件方法
Model.prototype.uploadFiles = function(source, destinationType, mediaType) {
var self = this;
var ft;
function clearProcess() {
ft.abort();
}
function openFileSelector() {
var options = {
quality : 50,
destinationType : destinationType,
sourceType : source,
mediaType : mediaType
};
navigator.camera.getPicture(uploadFile, uploadBroken, options);
}
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";
imguri = fileURI.substr(fileURI.lastIndexOf('/') + 1);
options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
options.mimeType = "multipart/form-data";
options.chunkedMode = false;
ft = new FileTransfer();
var uploadUrl = encodeURI(BASE_URL+"/PhoneHandler.ashx?jsoncallback=?");
alert(uploadUrl);
ft.upload(fileURI, uploadUrl, uploadSuccess, uploadFailed, options);
// 获取上传进度
// ft.onprogress = uploadProcessing;
// 显示进度条
// $('.upload_process_bar,#process_info').show();
}
function uploadSuccess(r) {
alert(r.response);
// alert('文件上传成功:' + r.response);
//alert(imguri);
alert(r.response);
var dataFiles = self.comp("dataFiles");
if (dataFiles.find([ 'dataFiles' ], [ r.response ]).length === 0) {
dataFiles.newData({
index : 0,
defaultValues : [ {
"fileName" : imguri,
"fileUrl" : r.response,
}]
});
}
clearProcess();
}
function uploadFailed(error) {
alert('上传失败了');
clearProcess();
}
openFileSelector();
};
// 拍照
Model.prototype.button5Click = function(event) {
var self = this;
self.uploadFiles(1, 1, 0);
};
// 相册
Model.prototype.button6Click = function(event) {
var self = this;
self.uploadFiles(2, 1, 0);
};
// 文件
Model.prototype.button7Click = function(event) {
var self = this;
self.uploadFiles(0, 1, 2);
/*var dataFiles = self.comp("dataFiles");
for(var i=0;i<5;i++) {
dataFiles.newData({
index : 0,
defaultValues : [ {
"fileName" : "namejia"+i,
"fileUrl" :"0",
}]
});
}*/
};
在安卓上就可以用,但是在ios上就会报错 |
|