次のようなアプリのワークフローがあります。
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 を取得するにはどうすればよいですか?