如何从科尔多瓦发出多路请求

how to do mulitpart request from cordova

本文关键字:多路 请求      更新时间:2023-09-26

>我必须提交带有图像的表单+一些额外的表单字段(多个表单提交请求)。我试过这个

function upload() {
    var img = document.getElementById('image');
    var imageURI = img.value;
    var options = new FileUploadOptions();
    options.fileKey = "photo";
    options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
    var params = new Object();
    options.params = params;
    var ft = new FileTransfer();
    ft.upload(imageURI, "https://www.example.com/upload.php", win, fail,
        options);
}
function win(r) {
    console.log("Code = " + r.responseCode);
    console.log("Response = " + r.response);
    console.log("Sent = " + r.bytesSent);
}
function fail(error) {
    alert("An error has occurred: Code = " + error.code);
    console.log("upload error source " + error.source);
    console.log("upload error target " + error.target);
}

HTML 是

<input type="file" id="userImage" name="photo">

但它返回错误代码 1并且图像路径是假的''1089001它也没有获得图片名称,而是显示一个数字?那么如何从输入文本框获取图像路径呢?

如果我在 src 中对图像进行硬编码(仅用于测试),则请求

错误代码 1未定义的瓦拉贝图像

请记住,我必须在base64 url中提交图像

其他表单数据将在参数对象中发送。你的现在是空白的,但你可以这样做

options.params.formkey1 = value1;
options.params.formkey2 = value2;

至于你的第二个问题(我会尽量一次限制在一个问题上),你需要在设备上传递文件的路径。请参阅文件传输的文档。

最后,您无需使用 base64 上传数据。我会避免这种情况,因为它比二进制数据大。只需让文件传输推送二进制数据即可。它就是为此而建造的。