Cordova FileTransfer插件在Android上为空

时间:2014-07-19 17:03:02

标签: javascript android cordova cordova-plugins

我有一个适用于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

3 个答案:

答案 0 :(得分:3)

使其工作的关键是设置option.headers

options.headers = {
    Connection: "close"
}

Phonegap File Transfer of picture fails on every other picture: Error code 3 with FileTransfer upload

答案 1 :(得分:2)

我得到了它的工作;事实证明我成功传输文件是错误的。由于对Android文件系统的一些困惑,我使用了错误的文件路径。

该插件未在JavaScript控制台中引发错误,并继续发出没有附加数据的请求。一旦我检查了Dalvik调试监视器中的错误消息,我就能够找到问题。

答案 2 :(得分:-1)

我可以确认,我对您指定的最新版本有同样的问题。一个解决方案显然是使用jquery.fileupload。我还没有尝试过。但是,如果成功,将发布。!