科尔多瓦文件转移工作一次,两个错误 3.



我在Cordova的fileTransfert插件上遇到了一个奇怪的问题(目标设备是Android 4.3,它可以在Android 6.0上运行(。我只是来上传两个文件。第一次和第三次发送工作正常,但第二次返回错误代码 3,日志中带有以下错误消息:

E/FileTransfer(15179): {"target":"https://XXXX/uploadTeamPicture","http_status":0,"code":3,"source":"file:///storage/emulated/0/Pictures/2017_4_14/XXXXX_14-15-00.jpeg","exception":"Write error: ssl=0x6e653128: I/O error during system call, Broken pipe"}

这是函数

// Manage File sending
function uploadFile(webAddr,fileURL,params)
{
    // when it's finished
    var win = function (r) {
       alert("Picture has been sent correctly !","Information"); 
       $("#takePicture").hide();
       resetAppli();
       fileTrans.abord();
    };
    // if upload failed
    var fail = function (error) {
        var msg="Please take another picture n"; 
        msg+="An error has occurred: Code = " + error.code;
        msg+="n src:"+error.source;
        msg+="n trgt:"+error.target;
        alert(msg);
        $("#takePicture").hide();
        resetAppli();
    };

    var uri = encodeURI(webAddr);
    var options = new FileUploadOptions();
    options.fileKey="fileToUpload";
    options.fileName=fileURL.substr(fileURL.lastIndexOf('/')+1);
    options.mimeType="text/plain";
    var headers={'headerParam':'headerValue'};
    options.headers = headers;
    options.params = params;
    //var ft = new FileTransfer();
    var ft=fileTrans;
    ft.onprogress = function(progressEvent) {
        if (progressEvent.lengthComputable) {
            //loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total);
            uploadProgress(progressEvent);
            var infoProg=(progressEvent.loaded / progressEvent.total);
            console.log("Progress :" + infoProg);
        } else {
            //loadingStatus.increment();
        }
    };
    // init progress bar before sending
    initProgressBar();
    // send file
    ft.upload(fileURL, uri, win, fail, options);
}

如果有人有想法...非常感谢您的帮助

在这里找到解决方案:在Android 4.3上使用Phonegap中的FileTransfer将文件上传到S3时的代码3

只需在参数表末尾添加 true 选项即可。

尝试更改函数的这一行

ft.upload(fileURL, uri, win, fail, options);

对此:

ft.upload(fileURL, uri, win, fail, options, true);

还有这一行:

var headers={'headerParam':'headerValue'};

对此:

var headers={Connection:'close'};

最新更新