Filename is minor issue ....
Main problem is invalid file :(

How can I serve the file from file system? I thought filesystemreference if
the best candidate .....

WBR, Maxim
(from mobile, sorry for the typos)

On Mar 29, 2017 8:08 PM, "Sven Meier" <[email protected]> wrote:

> Hi Maxim,
>
> three things:
>
> - filename ... no one sets the file name :P
>
> - serializable error ... FileSystemResource holds a reference to the path,
> which is not serializable
>
> - corruct zip ... my bad, it seems that Location.Blob mangles the file on
> the client side
>
> I'll see what I can do about Location.Blob - it might be an encoding issue.
>
> Have fun
> Sven
>
>
> On 29.03.2017 14:15, Maxim Solodovnik wrote:
>
>> here you are: https://github.com/solomax/ajax-download
>> Absolutely don't understand what is going on :(
>>
>> On Wed, Mar 29, 2017 at 6:30 PM, Maxim Solodovnik <[email protected]>
>> wrote:
>>
>>> Yep, zip file is valid
>>> Breakpoint at AjaxDownload.ResourceBehavior#onRequest() is not hit :(
>>> Will try to create quickstart
>>>
>>> something extremely weird
>>>
>>> On Wed, Mar 29, 2017 at 2:22 AM, Martin Grigorov <[email protected]>
>>> wrote:
>>>
>>>> Hi Maxim,
>>>>
>>>> On Tue, Mar 28, 2017 at 11:06 AM, Maxim Solodovnik <
>>>> [email protected]>
>>>> wrote:
>>>>
>>>> Thanks a lot Martin for detailed explanation
>>>>> I do have this functionality working with old version of AjaxDownload
>>>>>
>>>>> And here is my first try to migrate to the new internal wicket
>>>>> AjaxDownload:
>>>>> https://github.com/apache/openmeetings/commit/
>>>>> 5fa2c87f212e4eecdd1368f2ae7fa8762832838f
>>>>>
>>>>> I would appreciate if you can take a look at this tiny commit.
>>>>>
>>>>> Something really doesn't work as expected ....
>>>>>
>>>>> Commited version behaves wrong:
>>>>> 1) file downloaded has wrong name
>>>>>
>>>>> You do not set file name anywhere!
>>>> Keep a reference to the constructed ResourceResponse and call its
>>>> #setFileName(...)
>>>>
>>>>
>>>> 2) is not valid zip file (cannot be opened)
>>>>>
>>>>> Is the backupPath representing a ZIP file ?
>>>>
>>>>
>>>> 3) for some reason I'm not able to get to breakpoint at line 115 [1]
>>>>>
>>>>> Put a breakpoint at AjaxDownload.ResourceBehavior#onResourceRequested()
>>>> and
>>>> see what happens
>>>>
>>>>
>>>> Additionally I got NotSerializable exception in case I made "download"
>>>>> class final variable
>>>>>
>>>>> java.nio.file.Path is not Serializable!
>>>>
>>>>
>>>> What am I doing wrong?
>>>>>
>>>>> [1] https://github.com/apache/openmeetings/commit/
>>>>> 5fa2c87f212e4eecdd1368f2ae7fa8762832838f#diff-
>>>>> 0a499c88998a93ceb51c347836aa6195R115
>>>>>
>>>>> On Thu, Mar 23, 2017 at 3:16 AM, Martin Grigorov <[email protected]
>>>>> >
>>>>> wrote:
>>>>>
>>>>>> On Wed, Mar 22, 2017 at 12:59 PM, Maxim Solodovnik <
>>>>>> [email protected]
>>>>>>
>>>>>> wrote:
>>>>>>
>>>>>> Actually I have 2 example use cases:
>>>>>>>
>>>>>>> 1) user selects files on file tree
>>>>>>> 2) as soon as file is selected and download is enabled for it, used
>>>>>>> can
>>>>>>> press ajax download button and get the file
>>>>>>>
>>>>>>> Another case:
>>>>>>> User requests system backup
>>>>>>> As soon as backup is created (Progress complete)
>>>>>>> Download of newly created file should be initiated
>>>>>>>
>>>>>>> I can't create ResourceReference and override getResourceStream of it
>>>>>>>
>>>>>> since
>>>>>
>>>>>> I only have resource just before download
>>>>>>>
>>>>>>> Wicket IResource is an abstraction over the real resource.
>>>>>> In my case i also create the response on the fly. It is either a
>>>>>> single
>>>>>> File or a Zip file with several entries.
>>>>>> The ResourceReference is more or less just an endpoint with almost no
>>>>>>
>>>>> logic
>>>>>
>>>>>> at all. It just creates the IResource.
>>>>>> The IResource uses the information from the request parameters /
>>>>>> session
>>>>>>
>>>>> /
>>>>>
>>>>>> somewhere else to create the actual response (the files).
>>>>>>
>>>>>> AjaxDownload is an Ajax behavior that you can use to trigger the
>>>>>> creation
>>>>>> of the files and by using its callback methods you can show feedback
>>>>>> to
>>>>>>
>>>>> the
>>>>>
>>>>>> user. To show progress bar you will need to employ ProgressBar from
>>>>>> wicket-extentions or use WebSockets.
>>>>>>
>>>>>>
>>>>>> On Wed, Mar 22, 2017 at 6:53 PM, Martin Grigorov <
>>>>>>> [email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Hi Maxim,
>>>>>>>>
>>>>>>>> I use the new AjaxDownload with a ResourceReference, i.e.
>>>>>>>> AjaxDownload#AjaxDownload(org.apache.wicket.request.
>>>>>>>> resource.ResourceReference,
>>>>>>>> org.apache.wicket.request.mapper.parameter.PageParameters)
>>>>>>>> The ResourceReference has
>>>>>>>>
>>>>>>>> public IResource getResource() {
>>>>>>>>      return new StatementDownloadResource();
>>>>>>>> }
>>>>>>>>
>>>>>>>> StatementDownloadResource extends ResourceStreamResource and
>>>>>>>> provides
>>>>>>>> implementation of #getResourceStream(). There I have a logic that
>>>>>>>>
>>>>>>> returns
>>>>>
>>>>>> either FileResourceStream or ZipResourceStream.
>>>>>>>>
>>>>>>>> Martin Grigorov
>>>>>>>> Wicket Training and Consulting
>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>
>>>>>>>> On Wed, Mar 22, 2017 at 12:30 PM, Maxim Solodovnik <
>>>>>>>>
>>>>>>> [email protected]
>>>>>
>>>>>> wrote:
>>>>>>>>
>>>>>>>> Just have tried to switch to this AjaxDownload component
>>>>>>>>> And it seems I cannot find proper way to use it with dynamic file,
>>>>>>>>>
>>>>>>>> i.e.
>>>>>
>>>>>> previously
>>>>>>>>> I created AjaxDownload,
>>>>>>>>> added it to the page
>>>>>>>>> then at the moment I know what file should be served, I set the
>>>>>>>>>
>>>>>>>> stream
>>>>>
>>>>>> and
>>>>>>>>
>>>>>>>>> initiate the download
>>>>>>>>> (for example one of use cases: I need to create zip file
>>>>>>>>>
>>>>>>>>> right now this seems to be impossible :(
>>>>>>>>> Can you give me a hint how this dynamic nature can be implemented?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> WBR
>>>>>>>>> Maxim aka solomax
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> WBR
>>>>>>> Maxim aka solomax
>>>>>>>
>>>>>>>
>>>>>
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax
>>>>>
>>>>>
>>>
>>> --
>>> WBR
>>> Maxim aka solomax
>>>
>>
>>
>>
>

Reply via email to