This is exactly what I'm saying in my previous email - It has to be
refactored here to apply FormData stuff.

Thanks for all suggestions! Very helpful!

Piotr

pon., 15 lip 2019 o 15:37 Yishay Weiss <[email protected]> napisał(a):

> It sounds right to me. Maybe this [1] code from URLStream will need
> refactoring one day but I’m not sure.
>
>
>
> [1]
>
>                            var requestData:Object = urlRequest.data is
> BinaryData ? (urlRequest.data as BinaryData).data :
> HTTPUtils.encodeUrlVariables(urlRequest.data);
>
>                            send(requestData);
>
>
>
> ________________________________
> From: Piotr Zarzycki <[email protected]>
> Sent: Monday, July 15, 2019 1:58:11 PM
> To: [email protected]
> Subject: Re: Uploading files with parameters
>
> Hi Yishay,
>
> Yes that is a good plan - however I still have some questions to make sure
> that I will pursue this addition correctly.
>
> Then, FileModelWithParams would set the correct param in the FormData
>
>
> Do you agree on my idea have here params:FormData property as I understand
> ?
>
> I agree with the rest that blop should be read only, it will be set
> somewhere along the road in FileModel etc, but later when we comes to
> upload I will have to change URLStream to handle FormData. Cause it looks
> like that
>
> 1. FileUploader upload stuff trough URLBinaryLoader  [1]
> 2. URLBinaryLoader creates stream and send the data [2] using URLStream -
> Btw. in that place I don't know why we are not using URLBinaryUploader.
> 3. URLStream will need to handle what kind of data is being send BinaryData
> or FormData here [3] - Here we should have already filled FormData in
> ealier stages, so no validation or something what is in FormData.
>
> Let me know if you see that differently.
>
> [1]
>
> https://github.com/apache/royale-asjs/blob/51636852d1d791703cb74b011741fb1f003d5863/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileUploader.as#L86
> [2]
>
> https://github.com/apache/royale-asjs/blob/51636852d1d791703cb74b011741fb1f003d5863/frameworks/projects/Network/src/main/royale/org/apache/royale/net/URLBinaryLoader.as#L162
> [3]
>
> https://github.com/apache/royale-asjs/blob/0a9a732845a5d90c615754c0f8078f7b2f649893/frameworks/projects/Network/src/main/royale/org/apache/royale/net/URLStream.as#L136
>
> Thanks,
> Piotr
>
>
> >
>
> pon., 15 lip 2019 o 11:01 Yishay Weiss <[email protected]>
> napisał(a):
>
> > Hi Piotr,
> >
> > It looks like IFileModel should have a
> >
> > set fileContent(content:BinaryData):void
> >
> > Then, FileModelWithParams would set the correct param in the FormData and
> > FileModel would simply set blob.
> >
> > IFileModel.blob should be read only.
> >
> > That way, you can still use the rest of the beads the same way, only
> > changing the model. How does that sound?
> >
> > From: Piotr Zarzycki<mailto:[email protected]>
> > Sent: Sunday, July 14, 2019 10:21 PM
> > To: [email protected]<mailto:[email protected]>
> > Subject: Re: Uploading files with parameters
> >
> > This is great idea Yishay, but I see one scenario where having in model
> > blop property as FormData type will fail. If I would like to Load and
> > Upload later file blop has to be BinaryData. - This is actually what we
> are
> > trying to do. We need to use FileLoaderAndUploader.
> >
> > However if I create that new model with additional field called params:
> > FormData  it could use in following way with code [1]
> >
> > 1) File is being browsed and assigned to "file" property in IFileModel
> > 2) FileLoaderAndUploader - loads it cause "blop" property is empty
> > 3) "blop" property is being filled after loading and it's BinaryData
> > 4) Everything is happened in following line [2] when at the end when we
> > would like to upload stuff. Here we could use params (FormData), put File
> > in params and send. I don't know what should
> > be the name of the param actually for file, but maybe there is no
> official
> > default name. Here is some examples [3]
> >
> > [1] https://paste.apache.org/8mxx3
> > [2]
> >
> >
> https://github.com/apache/royale-asjs/blob/51636852d1d791703cb74b011741fb1f003d5863/frameworks/projects/Network/src/main/royale/org/apache/royale/net/URLStream.as#L136
> > [3]
> >
> >
> https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
> >
> > Thanks,
> > Piotr
> >
> > niedz., 14 lip 2019 o 14:10 Yishay Weiss <[email protected]>
> > napisał(a):
> >
> > > It could be enough to create a new model FileModelWithParams implements
> > > IFileModel which has blob() return FormData in JS. I don’t think you
> need
> > > FileUploaderWithParams because the present one reads the blob from the
> > > model anyway.
> > >
> > >
> > >
> > > ________________________________
> > > From: Piotr Zarzycki <[email protected]>
> > > Sent: Sunday, July 14, 2019 2:54:18 PM
> > > To: [email protected]
> > > Subject: Re: Uploading files with parameters
> > >
> > > I just looked into  FileModel and IFileModel. FileUploader using
> > FileModel,
> > > but this is because IFileModel doesn't contains "blop" property - I
> think
> > > IFileModel should contains such.
> > >
> > > It is definitely worth to make FileUploader using IFileModel.
> > >
> > > Next I could create bead FileUploaderWithParams extends FileUploader
> > which
> > > could use new interface IFileModelWithParams extends IFileModel.
> > >
> > > Thoughts ?
> > >
> > > Thanks,
> > > Piotr
> > >
> > > niedz., 14 lip 2019 o 13:41 Piotr Zarzycki <[email protected]>
> > > napisał(a):
> > >
> > > > Hi Yishay,
> > > >
> > > > Some comments inline.
> > > >
> > > > [1]  https://paste.apache.org/rk1ro
> > > >
> > > > sob., 13 lip 2019 o 14:06 Yishay Weiss <[email protected]>
> > > > napisał(a):
> > > >
> > > >> Hi Piotr,
> > > >>
> > > >>
> > > >>
> > > >> The beads [1] you mentioned are supposed to implement FileReference
> > > >> methods, that’s why I was asking about the flash way of doing it.
> > > >>
> > > >>
> > > >>
> > > > *We are doing it in following way [1].*
> > > >
> > > >
> > > >>
> > > >> Maybe this example [3] helps.
> > > >>
> > > >>
> > > >>
> > > > *Yes this example was very helpful and we are doing upload in exactly
> > the
> > > > same way. *
> > > >
> > > >
> > > >>
> > > >> As I understand the SO answers [2], they’re suggesting to either
> send
> > > the
> > > >> params on the url or in a FormData.
> > > >>
> > > >>
> > > >>
> > > >> For the former solution you can add <FileUploader id=”myUploader/>
> > bead
> > > >> to the file proxy and then on blobChangedHandler() you can make a
> call
> > > like:
> > > >>
> > > >>
> > > >>
> > > >> myUploader.upload(url?param1=1&param2=2)
> > > >>
> > > >>
> > > >>
> > > > *As you can see in my link [1] we are doing that in a way as you are
> > > > suggesting in Flex. In Royale I would like to avoid completely such
> > > things
> > > > like concatenating string in order to build url. That's way I have
> > > started
> > > > this thread to make sure that I'm not missing some better way than
> > this.
> > > It
> > > > looks like I need to implement it. Thanks for confirmation actually.*
> > > >
> > > >
> > > >>
> > > >> If you want the latter solution you can create a new IFileModel bead
> > > with
> > > >> params that would implement FormData on the JS side.
> > > >>
> > > >>
> > > >>
> > > >> It could be that FileUploader needs to be refacotred to read and
> > > >> IFileModel instead of an IModel, and that blob() should be part of
> the
> > > >> interface and return an Object.
> > > >>
> > > >>
> > > >>
> > > > *Once I jump into implementation I will take into account your
> > > > suggestions.*
> > > >
> > > >
> > > >>
> > > >> Hope you understand when you look at the code, otherwise ask.
> > > >>
> > > >>
> > > >>
> > > >> Thanks.
> > > >>
> > > >>
> > > >>
> > > >> [1]
> > > >>
> > >
> >
> https://github.com/apache/royale-asjs/tree/develop/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads
> > > >>
> > > >> [2]
> https://stackoverflow.com/questions/15218292/xhr-sendfile-params
> > > >>
> > > >> [3]
> https://github.com/yishayw/Examples/blob/FileProxy/Examples.mxml
> > > >>
> > > >>
> > > >>
> > > >> ________________________________
> > > >> From: Piotr Zarzycki <[email protected]>
> > > >> Sent: Friday, July 12, 2019 8:50:53 PM
> > > >> To: [email protected]
> > > >> Subject: Re: Uploading files with parameters
> > > >>
> > > >> Hi Yishay,
> > > >>
> > > >> I'm trying to achieve exactly what is in the link from SOF.
> > > >>
> > > >> Thanks,
> > > >> Piotr
> > > >>
> > > >> On Fri, Jul 12, 2019, 7:35 PM Yishay Weiss <[email protected]>
> > > >> wrote:
> > > >>
> > > >> > Can you show a flash snippet of what you’re trying to achieve?
> Would
> > > you
> > > >> > be using FileReference in flash?
> > > >> >
> > > >> >
> > > >> >
> > > >> > ________________________________
> > > >> > From: Piotr Zarzycki <[email protected]>
> > > >> > Sent: Friday, July 12, 2019 4:02:13 PM
> > > >> > To: [email protected]
> > > >> > Subject: Re: Uploading files with parameters
> > > >> >
> > > >> > Hi Harbs,
> > > >> >
> > > >> > I mean something like here [1] - I'm not sure if it answers to
> your
> > > >> > question.
> > > >> >
> > > >> > [1]
> > https://stackoverflow.com/questions/15218292/xhr-sendfile-params
> > > >> >
> > > >> > Thanks,
> > > >> > Piotr
> > > >> >
> > > >> > pt., 12 lip 2019 o 14:58 Harbs <[email protected]>
> napisał(a):
> > > >> >
> > > >> > > Do you mean multipart or something else?
> > > >> > >
> > > >> > > > On Jul 12, 2019, at 3:44 PM, Piotr Zarzycki <
> > > >> [email protected]
> > > >> > >
> > > >> > > wrote:
> > > >> > > >
> > > >> > > > Hey Guys,
> > > >> > > >
> > > >> > > > We are progressing with port Flex app to Royale. One of the
> > > feature
> > > >> in
> > > >> > > that
> > > >> > > > app is uploading File to server sigh along with couple of
> > > additional
> > > >> > > > parameters. I see that uploading is possible trough several
> > beads
> > > >> > > available
> > > >> > > > here [1].
> > > >> > > >
> > > >> > > > Unfortunately non of them provides nice options to add as part
> > of
> > > >> the
> > > >> > > > upload additional parameters.
> > > >> > > >
> > > >> > > > I'm going to implement FileUploaderWithParams bead where
> ability
> > > of
> > > >> > > adding
> > > >> > > > additional params as object will be handled.
> > > >> > > >
> > > >> > > > Is there anything that I'm missing here ?
> > > >> > > >
> > > >> > > > [1]
> > > >> > > >
> > > >> > >
> > > >> >
> > > >>
> > >
> >
> https://github.com/apache/royale-asjs/tree/develop/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads
> > > >> > > >
> > > >> > > >
> > > >> > > > Thanks,
> > > >> > > > --
> > > >> > > >
> > > >> > > > Piotr Zarzycki
> > > >> > > >
> > > >> > > > Patreon: *https://www.patreon.com/piotrzarzycki
> > > >> > > > <https://www.patreon.com/piotrzarzycki>*
> > > >> > >
> > > >> > >
> > > >> >
> > > >> > --
> > > >> >
> > > >> > Piotr Zarzycki
> > > >> >
> > > >> > Patreon: *https://www.patreon.com/piotrzarzycki
> > > >> > <https://www.patreon.com/piotrzarzycki>*
> > > >> >
> > > >>
> > > >
> > > >
> > > > --
> > > >
> > > > Piotr Zarzycki
> > > >
> > > > Patreon: *https://www.patreon.com/piotrzarzycki
> > > > <https://www.patreon.com/piotrzarzycki>*
> > > >
> > >
> > >
> > > --
> > >
> > > Piotr Zarzycki
> > >
> > > Patreon: *https://www.patreon.com/piotrzarzycki
> > > <https://www.patreon.com/piotrzarzycki>*
> > >
> >
> >
> > --
> >
> > Piotr Zarzycki
> >
> > Patreon: *https://www.patreon.com/piotrzarzycki
> > <https://www.patreon.com/piotrzarzycki>*
> >
> >
>
> --
>
> Piotr Zarzycki
>
> Patreon: *https://www.patreon.com/piotrzarzycki
> <https://www.patreon.com/piotrzarzycki>*
>


-- 

Piotr Zarzycki

Patreon: *https://www.patreon.com/piotrzarzycki
<https://www.patreon.com/piotrzarzycki>*

Reply via email to