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 >>> >> >> >> >
