当前位置: 首页 > 知识库问答 >
问题:

科尔多瓦文件传输删除多部分或内容处置标头

安泰平
2023-03-14

我设法使用Cordova文件传输插件将图像上传到我的服务器。

var img = <full path to image>
var url = <url to webservice>

var options = new FileUploadOptions(); //no specified options, using defaults
var ft = new FileTransfer();
ft.upload(img, encodeURI(url), win, fail, options);

var win = function (r) {
    console.log('Successfully sent');
}
var fail = function (error) {
    console.log("An error has occurred: Code = " + error.code);
};

但是,由于插件添加了额外的标头,我的服务器在读取图像时遇到问题。

--+++++..Content-Disposition: form-data; name="file"; filename="filename.jpg"..Content-Type: image/jpeg....

共有3个答案

公良信然
2023-03-14

只需在标题中放置“内容类型”。

标头:标头名称/标头值的映射。使用数组指定多个值。在 iOS、FireOS 和 Android 上,如果存在名为 Content-Type 的标头,则不会使用多部分表单数据。(对象)

https://github.com/apache/cordova-plugin-file-transfer#example-with-upload-headers-and-progress-events-android-and-ios-only

季骏祥
2023-03-14

请在选项中添加标题

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

只需参考 GitHub 中的示例。

刘弘济
2023-03-14

我花了一段时间才弄清楚这一点,但这是我删除多部分标题的方式。这是解决方案/解决方法。

Open: \platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java

查找:

sendStream.write(beforeDataBytes);
totalBytes += beforeDataBytes.length;

注释掉或删除这 2 行。它们是添加多部分标头的代码。

同时删除:

sendStream.write(tailParamsBytes);
totalBytes += tailParamsBytes.length;

此代码为多部分标头添加尾部。

我已经做了MD5校验和检查,它们现在是一样的。

 类似资料:
  • 嗨,我运行ionic命令时出现以下错误()。任何线索都将不胜感激。我的Java是9.0.1,错误消息对我来说没有意义。请提出你的想法。 ANDROID_HOME=C:\程序文件(x86)\Android\android-sdkJAVA_HOME=C:\程序文件\Java\jdk-9.0.1错误:JDK 1.8或更高版本的需求检查失败 [错误]运行科尔多瓦运行Android时出错(退出代码 1)。

  • 全部的 我正在尝试使用PhoneGap/Cordova 2获取照片的文件大小(即,不是尺寸,而是磁盘中的实际文件大小)。到目前为止,我唯一能计算出来的方法是通过base64转换,然后对b64字符串的字节进行基本运算。然而,我想知道是否有更优雅的方法来获取文件大小。蒂亚。 澄清:它必须在iOS 5和Android 2.3上工作。

  • OS: OSX 10.11科尔多瓦: 5.4.1(也在6.0上尝试)节点: 4.2.6科尔多瓦插件使用:人行横道-项目/科尔多瓦-插件-人行横道-网络视图(1.5),phonegap/phonegap-plugin-推送(1.5.3),和dariosalvi78/科尔多瓦-插件-健康(0.5.3) 运行时,我收到以下错误 出了什么问题:执行任务失败:dexArmv7Debug。com.androi

  • 我的项目有问题,我决定卸载并重新安装cordova,就像我过去那样,这有时会解决我的问题。 我不能安装科尔多瓦了。我收到这个消息: npm安装cordova npm WARN弃用hoek@2.16.3:主要版本不再支持 orted。请更新到4. x或更新的npm WARN该软件包Firebase是作为一个dev和producti 在依赖性上包含的。npm WARN可选跳过可选依赖性:fsevent

  • 谷歌宣布,自2019年8月1日起,所有新应用程序和应用程序更新都必须提供64位版本和32位版本。我有一个Ionic 3(Cordova)应用程序,我不确定这会有什么影响。具体来说,爱奥尼亚/科尔多瓦应用程序需要做什么才能满足这一要求? 从2019年8月1日开始: 发布到Google Play时,除了32位版本外,所有包含本机代码的新应用和应用更新都必须提供64位版本。

  • 更新1: 这就是我最后所做的一切: 这些都不是必须的吗? 原始问题: 在我的Ubuntu 12.04电脑上,我刚刚安装了npm和cordovanode.js: 当我尝试添加Android: 我得到以下输出: 有人知道为什么会发生这种情况以及如何解决吗? 我对PhoneGap也有同样的问题。

  • 我是离子的新手,我试图构建我的应用程序,但它失败了,所以我运行了“科尔多瓦要求”,我得到了这个错误: 有人知道怎么解决这个问题吗? 谢谢