This is an automated email from the ASF dual-hosted git repository.

hiedra pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new dbee6ab60a Fix binary uploader (#1235)
dbee6ab60a is described below

commit dbee6ab60afa52f12afe95c46d2c65e0df7fee79
Author: Cristallium <cont...@cristallium.com>
AuthorDate: Fri Oct 13 13:12:16 2023 +0200

    Fix binary uploader (#1235)
    
    * Update BinaryUploader.as
    
    * Fix POST data send by sending typedArray instead of utf8 string
    
    fix issue where file has for exemple 0x0c inside. It will be wrong encoded 
by the TextEncoder('utf8').
    To solve that as XMLHttpRequest now send typed array 
(https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#sending_typed_arrays_as_binary_data),
 there is no need to convert to utf8 string
---
 .../royale/org/apache/royale/net/BinaryUploader.as | 34 +++++++++++-----------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/net/BinaryUploader.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/net/BinaryUploader.as
index 067ee40b26..c8867e799e 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/net/BinaryUploader.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/net/BinaryUploader.as
@@ -565,18 +565,7 @@ COMPILE::SWF
                 
                 url = _url;
                 
-                var binaryData:String = null;
-                if (_binaryData != null) {
-                    if (_method == HTTPConstants.GET) {
-                        if (url.indexOf('?') != -1) {
-                            url += _binaryData.data;
-                        } else {
-                            url += '?' + _binaryData.data;
-                        }
-                    } else {
-                        binaryData = _binaryData.data.toString();
-                    }
-                }
+                
                 
                 element.open(_method, _url, true);
                 element.timeout = _timeout;
@@ -595,15 +584,26 @@ COMPILE::SWF
                 }
                 
                 if (_method != HTTPConstants.GET &&
-                    !sawContentType && binaryData) {
+                    !sawContentType && _binaryData) {
                     element.setRequestHeader(
                         HTTPHeader.CONTENT_TYPE, _contentType);
                 }
                 
-                if (binaryData) {
-                    element.setRequestHeader(HTTPHeader.CONTENT_LENGTH, 
binaryData.length.toString());
-                    element.setRequestHeader(HTTPHeader.CONNECTION, 'close');
-                    element.send(binaryData);
+                if (_binaryData) {
+                    //element.setRequestHeader(HTTPHeader.CONTENT_LENGTH, 
binaryData.length.toString()); // seem useless and generate error
+                    //element.setRequestHeader(HTTPHeader.CONNECTION, 
'close'); // seem useless and generate error
+                    
+                    if (_method == HTTPConstants.GET) {
+                        if (url.indexOf('?') != -1) {
+                            url += _binaryData.toString();
+                        } else {
+                            url += '?' + _binaryData.toString();
+                        }
+                        element.send();
+                    } else {
+                        element.send(_binaryData.array);
+                    }
+                    
                 } else {
                     element.send();
                 }

Reply via email to