我有一个适用于iOS的Cordova应用程序,我现在正在更新以支持Android。我解决了大部分问题,但FileTransfer插件在请求中不包含FileUploadOptions.params
。一切都在iOS上顺利运行。使用Android,请求被发送,除了到达服务器的请求没有表单字段外,一切看起来都很正常。
我在调用upload
方法之前设置了一个断点,options.params
对象看起来是正确的。
我正在使用Android 4.4.3,Cordova 3.5和FileTransfer插件0.4.4进行测试。服务器正在运行Apache并启用了SSL。
这是我的代码:
var options = new FileUploadOptions();
options.chunkedMode = false;
options.mimeType = 'audio/mp4';
options.fileKey = 'file';
options.fileName = filename;
options.params = {
'siteId': siteId,
'name': nameFld.getValue(),
'date': sqlDate,
'length': Math.round(storyLength)
};
options.headers={'Authorize': token};
var ft = new FileTransfer();
ft.upload(path, url, uploadSuccess, uploadFail, options);
我在这里发现了同样的问题,没有回应: Phonegap fileTransfer upload doesn't POST params
更新:在此处打开一个问题: https://issues.apache.org/jira/browse/CB-7171
答案 0 :(得分:3)
使其工作的关键是设置option.headers
:
options.headers = {
Connection: "close"
}
答案 1 :(得分:2)
我得到了它的工作;事实证明我成功传输文件是错误的。由于对Android文件系统的一些困惑,我使用了错误的文件路径。
该插件未在JavaScript控制台中引发错误,并继续发出没有附加数据的请求。一旦我检查了Dalvik调试监视器中的错误消息,我就能够找到问题。
答案 2 :(得分:-1)
我可以确认,我对您指定的最新版本有同样的问题。一个解决方案显然是使用jquery.fileupload。我还没有尝试过。但是,如果成功,将发布。!