我有一个应用程序工作流程如下。
1) 用户打开表单。输入数据 2) 点击添加照片按钮,选择照片。3)照片被上传,一条新记录被插入到我的数据库中,其中包含表单数据和照片网址。
使用文件传输方法可以很好地上传照片。
我的代码如下:
我检查是否设置了变量 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?