[jira] [Updated] (CB-11067) Content-Length missing in multipart form upload header on Android

2016-04-12 Thread Odd Christer Brovig (JIRA)

 [ 
https://issues.apache.org/jira/browse/CB-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Odd Christer Brovig updated CB-11067:
-
Description: 
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}

  was:
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:

```


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");
```

>From CDVFileTransfer.m:

```
[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]];
```


> 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:NSUTF8StringEnco

[jira] [Created] (CB-11067) Content-Length missing in multipart form upload header on Android

2016-04-12 Thread Odd Christer Brovig (JIRA)
Odd Christer Brovig created CB-11067:


 Summary: 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:

```


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");
```

>From CDVFileTransfer.m:

```
[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]];
```



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

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