【问题标题】:PhoneGap FileTransfer.upload params no longer postingPhoneGap FileTransfer.upload 参数不再发布
【发布时间】:2012-07-02 00:28:55
【问题描述】:

我今天刚刚从 Cordova (PhoneGap) 1.5 升级到 1.9,突然我的 FileTransfer 参数停止发布。我可以说出来,因为我让服务器端调试了 $_POST 参数,它们现在是空白的。这是正在运行的代码:

    var options = new FileUploadOptions();
    options.fileKey="file";
    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";
    options.chunkedMode=false;

    var params = new Object();
    params.client_token = "This will not make it across, sadly...";  

    options.params = params;

    var ft = new FileTransfer();
    rs = ft.upload(imageURI, "http://www.mysite.com/api/uploadimage", 
        function() { alert('Yay!'); }, 
        function() { alert('Fail happens..'); }, options, true);

这是否发生在其他人身上?也许必须设置一个新设置?

更新:

为了确保不是 CodeIgniter 导致服务器端问题,我现在将上述代码发布到 echo.php,它只是执行“print var_dump($_REQUEST);”。仍然没有结果。我能够作弊并将客户端令牌作为 $_GET 参数扔到 URL 上,但是因为客户端发生了变化而破解服务器端似乎很可耻。

【问题讨论】:

  • 以上代码在cordova 1.9和nodejs服务器中对我来说很好,其中client_token是POST请求中表单数据的一部分。
  • 这很奇怪。感谢您的检查。因为我只在一个地方使用代码,所以我将它切换到了 GET。我想我会将charlesproxy.com 连接到我的手机并调试实际传输的内容。
  • 这段代码也适用于我;)

标签: file-upload cordova file-transfer


【解决方案1】:

我在 iOS Cordova 1.9 上遇到了同样的问题。我发现并修复了框架代码中的错误,您可以下载我的 Cordova fork 并从中使用新修补的 /dist/Cordova-1.9.0.dmg:https://github.com/eschultz/incubator-cordova-ios/

快速浏览一下,Android Cordova 1.9 代码看起来不错。我向 Apache 提交了我的更改,以便在他们的下一个版本中包含修复。

希望这会有所帮助。

【讨论】:

  • 太棒了,谢谢埃里克!我很感激你确认至少我没有疯。 :) 我已经破解了我的 API 以使用 GET 参数,但我会留意下一个 Cordova 中的修复。你摇滚!
  • @Anthony 我在升级时遇到了完全相同的问题。好球,埃里克。这是我前几天在上面打开的 JIRA:issues.apache.org/jira/browse/CB-1015
  • 我在 Cordova 2.0 中看到了类似的不当行为。不确定这是一个新的错误还是相同的错误重新出现,但 FileTransfer 在某些情况下似乎被破坏了(发回负文件大小等)。
  • P.S.:手动清除我的应用程序的缓存似乎(至少暂时)解决了这个问题......但很确定不只是我。我们让其他几个人报告了同样的事情。听起来这可能与临时照片/文件存储有关,而不是 FileTransfer。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多