Cool, I think we are good to go with this refactoring, the rest can be
resolved during a test build period.

Thanks a lot Greg for your help :)


Regards
-- 
Łukasz
+ 48 606 323 122 http://www.lenart.org.pl/


2016-11-24 15:29 GMT+01:00 Greg Huber <gregh3...@gmail.com>:
> ....For every file it calls the UploadedFileConverter, this is the same for
> the ajax uploader and a form with multiple upload files.
>
> On 24 November 2016 at 14:08, Lukasz Lenart <lukaszlen...@apache.org> wrote:
>
>> That shouldn't matter but I think how can I test this behaviour.
>>
>> 2016-11-24 15:03 GMT+01:00 Greg Huber <gregh3...@gmail.com>:
>> > Sorry, forgot to add this is not on the app engine!  Was only testing the
>> > plugin functionality ie the filter and the listener.  I assume the array
>> > comes from when running the webapp on the app engine?
>> >
>> >
>> >
>> > On 24 November 2016 at 13:26, Lukasz Lenart <lukaszlen...@apache.org>
>> wrote:
>> >
>> >> Hm... this can be an internal conversion of collection containing
>> >> uploaded files. Does your ajax upload allow upload multiple files at
>> >> once?
>> >>
>> >> 2016-11-24 14:18 GMT+01:00 Lukasz Lenart <lukaszlen...@apache.org>:
>> >> > How is that possible? I meant, parameters should always be passed as
>> >> > arrays, that's how HttpServletRequest works. Do you use custom
>> >> > implementation of MultiPartRequest? Could you share your upload logic,
>> >> > action and JSP/JavaScript?
>> >> >
>> >> > That's why JakartaMultiPartRequest (and other implementations as well)
>> >> > always creates an array, even if only one file is uploaded:
>> >> > https://github.com/lukaszlenart/struts/blob/WW-
>> >> 4717/core/src/main/java/org/apache/struts2/dispatcher/multipart/
>> >> JakartaMultiPartRequest.java#L110-L118
>> >> >
>> >> >
>> >> > Regards
>> >> > --
>> >> > Łukasz
>> >> > + 48 606 323 122 http://www.lenart.org.pl/
>> >> >
>> >> > 2016-11-24 12:13 GMT+01:00 Greg Huber <gregh3...@gmail.com>:
>> >> >> Seems to be this line in UploadedFileConverter:
>> >> >>
>> >> >> if (value.getClass().isArray() && Array.getLength(value) == 1) {
>> >> >>
>> >> >> where value ==
>> >> >> org.apache.struts2.dispatcher.multipart.StrutsUploadedFile@62e25d8
>> >> >>
>> >> >> and is not an array.
>> >> >>
>> >> >> this works:
>> >> >>
>> >> >> Object obj = null;
>> >> >>             if (value.getClass().isArray() && Array.getLength(value)
>> ==
>> >> 1) {
>> >> >>                 obj = Array.get(value, 0);
>> >> >>             } else {
>> >> >>                 obj = value;
>> >> >>             }
>> >> >>             if (obj instanceof UploadedFile) {
>> >> >>                 UploadedFile file = (UploadedFile) obj;
>> >> >>                 if (file.getContent() instanceof File) {
>> >> >>                     return file.getContent();
>> >> >>                 }
>> >> >>                 return new File(file.getAbsolutePath());
>> >> >>             }
>> >> >>
>> >> >> This works for both my ajax and normal upload.
>> >> >>
>> >> >> On 23 November 2016 at 12:56, Lukasz Lenart <lukaszlen...@apache.org
>> >
>> >> wrote:
>> >> >>
>> >> >>> Could someone tag that PR with :+1:?
>> >> >>>
>> >> >>> 2016-11-22 20:41 GMT+01:00 Lukasz Lenart <lukaszlen...@apache.org>:
>> >> >>> > All is good :) I have refactored the file upload logic a bit,
>> cleaned
>> >> >>> > up and fixed some issues with wrong message keys. Also I added
>> >> >>> > dedicated converter to keep support for java.io.File so there is
>> no
>> >> >>> > need for migration :)
>> >> >>> >
>> >> >>> > I've also developed a small GAE plugin which is using the
>> mentioned
>> >> >>> > changes (that's why build cannot pass as a Struts SNAPSHOT is
>> wrong
>> >> >>> > ;-)), tested it locally and everything works as expected :D
>> >> >>> > https://github.com/lukaszlenart/struts2-gea-plugin
>> >> >>> >
>> >> >>> > Can you take a look on that PR?
>> >> >>> >
>> >> >>> >
>> >> >>> > Thanks in advance
>> >> >>> > --
>> >> >>> > Łukasz
>> >> >>> > + 48 606 323 122 http://www.lenart.org.pl/
>> >> >>> >
>> >> >>> > 2016-11-22 9:44 GMT+01:00 Lukasz Lenart <lukaszlen...@apache.org
>> >:
>> >> >>> >> Done, thanks Aaron :) Now I must test this solution with Google
>> >> >>> AppEngine ;-)
>> >> >>> >>
>> >> >>> >> 2016-11-22 7:49 GMT+01:00 Lukasz Lenart <lukaszlen...@apache.org
>> >:
>> >> >>> >>> 2016-11-21 20:12 GMT+01:00 Aaron Johnson <
>> johnson.aar...@gmail.com
>> >> >:
>> >> >>> >>>> Is it possible to have a converter from UploadedFile to File?
>> The
>> >> >>> >>>> UploadedFile has a getContent() method that returns the File
>> >> object.
>> >> >>> >>>
>> >> >>> >>> Hm... it would be possible to add a converter, that should work
>> :)
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> Regards
>> >> >>> >>> --
>> >> >>> >>> Łukasz
>> >> >>> >>> + 48 606 323 122 http://www.lenart.org.pl/
>> >> >>>
>> >> >>> ------------------------------------------------------------
>> ---------
>> >> >>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
>> >> >>> For additional commands, e-mail: dev-h...@struts.apache.org
>> >> >>>
>> >> >>>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
>> >> For additional commands, e-mail: dev-h...@struts.apache.org
>> >>
>> >>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
>> For additional commands, e-mail: dev-h...@struts.apache.org
>>
>>

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

Reply via email to