cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-11067) Content-Length missing in multipart form upload header on Android
Date Wed, 13 Apr 2016 08:24:25 GMT

    [ https://issues.apache.org/jira/browse/CB-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15238826#comment-15238826
] 

ASF GitHub Bot commented on CB-11067:
-------------------------------------

GitHub user oddcb opened a pull request:

    https://github.com/apache/cordova-plugin-file-transfer/pull/140

    CB-11067 - Adds content-length to multipart string if file length determined as also iOS
plugin does

    ICLA signed and sent per email.
    
    https://issues.apache.org/jira/browse/CB-11067

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/oddcb/cordova-plugin-file-transfer CB-11067_add_file_content_length_to_multipart_if_present

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-plugin-file-transfer/pull/140.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #140
    
----
commit 7673590ad65a673c7578f7eead78fd4bd083f05c
Author: Odd Christer Brovig <odd@systemfabrikken.org>
Date:   2016-04-13T08:10:16Z

    CB-11067 - Adds content-length to multipart string if the file length is determined, as
also the iOS plugin does.

----


> Content-Length missing in multipart form upload header on Android
> -----------------------------------------------------------------
>
>                 Key: CB-11067
>                 URL: https://issues.apache.org/jira/browse/CB-11067
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin File Transfer
>         Environment: Plugin version 1.5.0
> chunked = false
>            Reporter: Odd Christer Brovig
>
> On iOS Content-Length is sent as part of header for multipart form. On Android only Content-Disposition
and Content-Type is sent.
> Is there a special reason for this? I see that the file size is read after the beforeData
is converted to bytes.
> From FileTransfer.java:
> {code:java}
>                     beforeData.append(LINE_START).append(BOUNDARY).append(LINE_END);
>                     beforeData.append("Content-Disposition: form-data; name=\"").append(fileKey).append("\";");
>                     beforeData.append(" filename=\"").append(fileName).append('"').append(LINE_END);
>                     beforeData.append("Content-Type: ").append(mimeType).append(LINE_END).append(LINE_END);
>                     byte[] beforeDataBytes = beforeData.toString().getBytes("UTF-8");
>                     byte[] tailParamsBytes = (LINE_END + LINE_START + BOUNDARY + LINE_START
+ LINE_END).getBytes("UTF-8");
> {code}
> From CDVFileTransfer.m:
> {code}
>     [postBodyBeforeFile appendData:formBoundaryData];
>     [postBodyBeforeFile appendData:[[NSString stringWithFormat:@"Content-Disposition:
form-data; name=\"%@\"; filename=\"%@\"\r\n", fileKey, fileName] dataUsingEncoding:NSUTF8StringEncoding]];
>     if (mimeType != nil) {
>         [postBodyBeforeFile appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n",
mimeType] dataUsingEncoding:NSUTF8StringEncoding]];
>     }
>     [postBodyBeforeFile appendData:[[NSString stringWithFormat:@"Content-Length: %ld\r\n\r\n",
(long)[fileData length]] dataUsingEncoding:NSUTF8StringEncoding]];
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org


Mime
View raw message