次のようなアプリのワークフローがあります。
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 をサーバーに挿入できません。
ファイル転送方法は非同期です。フォームを送信する前に写真の URL を取得するにはどうすればよいですか?