电话间隙文件传输异步

Phonegap filetransfer async

本文关键字:传输 异步 文件 间隙 电话间 电话      更新时间:2023-09-26

我有一个应用程序工作流程,如下所示。

1) 用户打开表单。输入数据2)点击添加照片按钮,选择照片。3)照片被上传,一条新记录入到我的数据库中,其中包含表单数据和照片URL。

使用文件传输方法上传照片即可。

我的代码如下:

我检查变量 s.photo 是否已设置。

if(app.isEmpty(s.photo)) {
    photo = "" ; 
}else {
    app.uploadPhoto();
    alert(s.photoresponse);
}

在此处保存详细信息

我的上传照片功能如下:

uploadPhoto: function () {
    var options = new FileUploadOptions();
    options.fileKey="file";
    options.fileName=s.photo.substr(s.photo.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";
    var params = new Object();
    options.params = params;
    options.chunkedMode = false;
    alert("uploading photo");
    var ft = new FileTransfer();
    ft.upload(s.photo, encodeURI("http://server.com/upload.php"), app.win, app.fail, options);
}

我的 app.win 函数只是将响应设置为 s.photoresponse

win: function (r) {
    s.photoresponse = r.response;
}

如果你检查第一个函数,我试图提醒s.photoresponse变量。因此,即使照片上传到服务器上,我也无法将照片URL插入服务器。

文件传输方法是异步的。在提交表单之前,我如何仍能检索照片网址?

正如您所说,您需要将提交表单逻辑移动到 app.win 函数...是异步的,但您在此成功函数中从上传中获得响应。

win: function (r) {
    s.photoresponse = r.response;
    // Here comes your submit form logic....
    alert(s.photoresponse); //<--From your example
}