Phonegap Android 文件传输错误码 3

5
我正在为Android移动应用程序开发一款应用,该应用使用Dave Johnson的Facebook Connect插件 (https://github.com/davejohnson/phoneg...)、相机和文件传输。基本上,用户点击一个按钮以拍照(手机相机启动,用户拍照),然后将这张照片上传到服务器。问题是第一次一切正常,但当我再次点击按钮拍摄第二张照片时,无法将照片上传到服务器,返回的错误来自FileTransfer-错误代码3。
我已经设置options.chunkedMode = false;但没有帮助。
我知道这是连接错误,我在/res/xml/cordova.xml文件中将上传图片的域名加入了白名单。我在网上搜索了很多,找到了其他人抱怨这个问题,但没有提供有效的解决方案。我正在使用Cordova 1.8.1(我还测试过1.8.0、1.7.0、1.6.1、1.5.0版本),我尝试使用更新的Phonegap版本(例如1.9.0),但无法构建项目——Facebook插件与Phonegap的此版本不兼容。我正在使用模拟器Android 4.1(API 16)进行测试。我在查看详细日志时尝试了不同的方法使它工作,但我无法使它工作。我正在努力寻找解决方案,因为这非常重要,请帮助我解决这个问题。提前感谢您的回答。

已经解决了这个问题。同样的问题... - Aravin
你好,你解决了上述问题吗?如果有的话,请分享一下。 - Stone
2个回答

0
你可以尝试以下两种方法:
在 AndroidManifest.xml 文件的标签中设置android:debuggable="true"。
在代码块中设置 ,而不是只是 *,如评论部分所建议的那样。
<!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
<!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
<!-- <access origin=".*"/> Allow all domains, suggested development use only -->

来源:https://dev59.com/nGbWa4cB1Zd3GeqPa9jx#12011782


3
感谢Braunson的快速回答,但是你的建议并没有帮助到我。我的结论是,如果在配置文件或源代码中有问题,它不可能在第一次上传时成功。奇怪的是,使用某个算法时,第一次一切正常,但再次点击“文件传输”时,却出现了与完全相同算法相关的错误。请提出另一种解决问题的方法,这不是一个可行的解决方案。 - mmsv

0

这是PhoneGap库中一个未修复的bug,由于没有bug修复,我不得不通过我的解决方法(基本上是在每次交替失败后重新上传)来使其工作:

ft.upload(path,
          encodeURI("http://yourdomain.com/upload.php"),
            function(result) {
                alert("Uploaded");
            },
            function(error) {
        ft.upload(path,
        encodeURI("http://yourdomain.com/upload.php"),
        function(result) {
                alert("Uploaded");                  
        },
        function(error) {
            alert("Error uploading image");
        },
        { fileName: name, fileKey: "file", mimeType: "image/jpeg", chunkedMode: false }, true);     
                },
                { fileName: name, fileKey: "file", mimeType: "image/jpeg", chunkedMode: false }, true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接