如何解决文件传输插件在上传视频和从服务器下载时异步运行
document.addEventListener('deviceready',onDeviceReady,false);
function onDeviceReady(){
document.getElementById('uploadVideo').addEventListener("click",onUploadVideo);
// ---------------------------
// Upload Video Code
// ---------------------------
function onUploadVideo() {
navigator.camera.getPicture(onSuccess,onFail,{
sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM,mediaType: Camera.MediaType.VIDEO,allowEdit: true
});
function onSuccess(videoUri) {
// File Upload
var options = new FileUploadOptions();
options.fileKey = "video";
options.fileName = videoUri.substr(videoUri.lastIndexOf('/') + 1);
options.mimeType = "video/mp4";
options.httpMethod = "POST";
options.chunkedMode = false;
options.headers = {'X-CSRF-Token': localStorage.getItem('u:token')};
var params = {};
params.value1 = "test";
params.value2 = "param";
options.params = params;
alert("URL of Video is : " + videoUri);
alert("FileName of Video is : " + options.fileName);
alert("FileKey of Video is : " + options.fileKey);
alert("mimeType is : " + options.mimeType);
// Give your IP Address and PORT Number
**var uri = encodeURI("http://192.168.43.130:8081/extractAudio.php");**
// var uri = encodeURI("http://192.168.1.5:443/uploadvideo.php");
var ft = new FileTransfer();
ft.upload(videoUri,uri,function(result){
alert('successfully uploaded ' + result.response);
},function(error){
alert('error : ' + JSON.stringify(error));
},options);
// ---------------------------
// Progress Code
// ---------------------------
var statusDom;
statusDom = document.getElementById('status');
ft.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100);
statusDom.innerHTML = perc + "% loaded...";
console.log(perc);
} else {
if(statusDom.innerHTML == "") {
statusDom.innerHTML = "Loading";
} else {
statusDom.innerHTML += ".";
}
}
};
var download_URL = encodeURI("http://192.168.43.130:8081/upload/Dance.mp3");
// var download_URL = encodeURI("http://192.168.1.5:443/upload/sample.mp3");
var fileURL = "*******************";
// var fileURL = "********************";
ft.download(download_URL,fileURL,function(result) {
alert("download complete: " + result.toURL());
},function(error) {
alert("download error source " + error.source);
alert("download error target " + error.target);
alert("download error code" + error.code);
},false,{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
}
function onFail(message) {
alert('Failed because: ' + message);
}
}
}
// download_URL首先执行,这就是为什么我无法下载sample.mp3文件的原因,因为它不在服务器上。但是,一旦我对相同的文件执行相同的操作,它会下载服务器中已经存在的mp3文件。在完成上传之前,总结它尝试下载的点。我需要先上传,然后再下载mp3文件。有人可以帮我吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。