This is an automated email from the ASF dual-hosted git repository.
yishayw pushed a commit to branch file_proxy_refactor
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/file_proxy_refactor by this
push:
new 9c2555a Adding FileModelWithParams which is a FormData implementation
in JS. SWF version still incomplete.
9c2555a is described below
commit 9c2555a15e3897953d30ba25659b54b08b29837b
Author: DESKTOP-RH4S838\Yishay <[email protected]>
AuthorDate: Sat Jul 20 13:32:20 2019 +0300
Adding FileModelWithParams which is a FormData implementation in JS. SWF
version still incomplete.
---
.../Network/src/main/resources/basic-manifest.xml | 1 +
.../royale/file/beads/FileModelWithParams.as | 117 +++++++++++++++++++++
.../main/royale/org/apache/royale/net/URLStream.as | 4 +-
3 files changed, 121 insertions(+), 1 deletion(-)
diff --git a/frameworks/projects/Network/src/main/resources/basic-manifest.xml
b/frameworks/projects/Network/src/main/resources/basic-manifest.xml
index ae33d91..51e7abe 100644
--- a/frameworks/projects/Network/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Network/src/main/resources/basic-manifest.xml
@@ -33,4 +33,5 @@
<component id="FileUploaderWithResponseData"
class="org.apache.royale.file.beads.FileUploaderWithResponseData"/>
<component id="FileLoaderAndUploader"
class="org.apache.royale.file.beads.FileLoaderAndUploader"/>
<component id="FileModel" class="org.apache.royale.file.beads.FileModel"/>
+ <component id="FileModelWithParams"
class="org.apache.royale.file.beads.FileModelWithParams"/>
</componentPackage>
diff --git
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModelWithParams.as
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModelWithParams.as
new file mode 100644
index 0000000..5ffec8b
--- /dev/null
+++
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModelWithParams.as
@@ -0,0 +1,117 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.file.beads
+{
+ /**
+ * The FileModelWithParams class should allow sending a file with
parameters.
+ * The js implementation uses FormData.
+ *
+ *
+ * @toplevel
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.6
+ */
+ import org.apache.royale.utils.BinaryData;
+ public class FileModelWithParams extends FileModel
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9
+ */
+ COMPILE::JS
+ {
+ private var _blob:FormData;
+ }
+ private var _fileParamName:String = "blob";
+ public function FileModelWithParams()
+ {
+ super();
+ COMPILE::JS
+ {
+ _blob = new FormData();
+ }
+ }
+
+ /**
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.6
+ */
+ override public function set fileContent(value:BinaryData):void
+ {
+ COMPILE::JS
+ {
+ setParam(fileParamName, new Blob([value.data]),
name);
+ dispatchEvent(new Event("blobChanged"));
+ }
+ COMPILE::SWF
+ {
+ super.fileContent = value;
+ }
+ }
+
+ /**
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.6
+ */
+ COMPILE::JS
+ override public function get blob():Object
+ {
+ return _blob;
+ }
+
+ public function setParam(name:String, value:Object,
fileName:String=null):void
+ {
+ COMPILE::JS
+ {
+ if (fileName)
+ {
+ _blob["set"](name, value, fileName);
+ } else
+ {
+ _blob["set"](name, value);
+ }
+ }
+ COMPILE::SWF
+ {
+ // TODO
+ }
+ }
+
+ public function get fileParamName():String
+ {
+ return _fileParamName;
+ }
+
+ public function set fileParamName(value:String):void
+ {
+ _fileParamName = value;
+ }
+ }
+}
diff --git
a/frameworks/projects/Network/src/main/royale/org/apache/royale/net/URLStream.as
b/frameworks/projects/Network/src/main/royale/org/apache/royale/net/URLStream.as
index 8cf0d11..91b4943 100644
---
a/frameworks/projects/Network/src/main/royale/org/apache/royale/net/URLStream.as
+++
b/frameworks/projects/Network/src/main/royale/org/apache/royale/net/URLStream.as
@@ -133,7 +133,9 @@ package org.apache.royale.net
{
xhr.setRequestHeader("Content-type",
urlRequest.contentType);
}
- var requestData:Object = urlRequest.data is
BinaryData ? (urlRequest.data as BinaryData).data :
HTTPUtils.encodeUrlVariables(urlRequest.data);
+ var requestData:Object = urlRequest.data is
BinaryData ? (urlRequest.data as BinaryData).data :
+ urlRequest.data is FormData ?
urlRequest.data :
+
HTTPUtils.encodeUrlVariables(urlRequest.data);
send(requestData);
}
COMPILE::SWF