【问题标题】:Cordova FileTransfer plugin params empty on AndroidCordova FileTransfer 插件参数在 Android 上为空
【发布时间】:2014-07-19 17:03:01
【问题描述】:

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

【问题讨论】:

  • 我面临着类似的问题。文件上传是可选的。因此,当没有附加文件时。参数没有到达服务器。 (但标题有效)。你知道有什么方法可以解决这个问题吗? (没有使用另一个角度 http.post )

标签: javascript android cordova cordova-plugins


【解决方案1】:

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

options.headers = {
    Connection: "close"
}

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

【讨论】:

  • 感谢您的提示,但这种方法并不能解决问题。这似乎与您链接的问题不同。 Cordova 始终使用文件发送请求,但没有额外的参数。
【解决方案2】:

我让它工作了;事实证明我对成功传输文件的看法是错误的。由于对 Android 文件系统的一些混淆,我使用了错误的文件路径。

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

【讨论】:

    【解决方案3】:

    我可以确认,我与您指定的最新版本有相同的问题。一种解决方案显然是使用 jquery.fileupload。我还没试过。但是,如果成功了会发帖的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 2012-08-04
      • 2014-06-29
      相关资源
      最近更新 更多