this is Java - we have no pointers :P 

basically, if you want to get the data from a file you do it a bit different
as from a DB stream, if you look here, youll see the basic behind IO here:
http://www.physik.uni-muenchen.de/kurs/Computing/java/node36.html
(its german, so u will understand it easily)

Regards,

Korbinian




> -----Urspr├╝ngliche Nachricht-----
> Von: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] Im Auftrag 
> von Sebastian Pflugbeil
> Gesendet: Mittwoch, 23. August 2006 11:24
> An: wicket-user@lists.sourceforge.net
> Betreff: Re: [Wicket-user] best practice for uploading and 
> using content (images) with wicket?
> 
> 
> Well, thanks a lot, thats really much more simple then i 
> figured =P. Maybe any pointers why the stream from the file 
> system doesnt work? ;)
> 
> 
> igor.vaynberg wrote:
> > 
> > your problem is not retreiving the data from the db - it is 
> the weird 
> > stuff you try to do when stream it back to the browser. why all the 
> > awt image stuff? all you have to do is read the byte array 
> from the db 
> > and stream it back to the browser.
> > 
> > here is some pseudo code
> > 
> > add(new Image("myimage") {
> >   Resource getResource() { return new 
> > ByteArrayResource(getBytesFromDb());
> > }
> > }
> > 
> >  
> > 
> > if you really want to resize the image to 200x200 before 
> storing it in 
> > the db or creating a thumbnail then i would look over that wiki 
> > example and extract the resizing logic - but if all you 
> want to do is 
> > stream it back then the above will do.
> > 
> > -Igor
> > 
> > 
> > On 8/22/06, Sebastian Pflugbeil <
> > [EMAIL PROTECTED]> wrote:
> >>
> >>  Hi Wicket Team and Wicket Mailinglist!
> >>
> >>
> >>
> >> As this is my first post on this list, I would like to 
> introduce myself.
> >> My name is Sebastian and I am working on a university project, 
> >> comparing Java web frameworks. As you might guess, my 
> primary topic 
> >> is the Wicket framework ;). I am not what one would call a 
> programmer 
> >> or coder, I guess.
> >> Rather someone familiar with the underling concepts, but 
> sometimes a 
> >> bit lots with the actual implementations of a certain language. So 
> >> please excuse me, if my questions are stupid ;).
> >>
> >>
> >>
> >> My problem at this moment is the following. I need to implement a 
> >> feature in wicket that lets me upload images to a webpage and then 
> >> use those images to be displayed on certain pages. It 
> doesn't really 
> >> matter if the images are stored on the file system or in a 
> database. 
> >> I am not looking for a solution to an explicit problem but 
> rather for 
> >> a best practice that shows how the wicket framework 
> supports such a 
> >> feature.
> >>
> >>
> >>
> >> I have tried to read up on anything I could find addressing such a 
> >> feature. But everything I got so far is either way beyond 
> my scope of 
> >> understanding, not offering enough to archive the goal or just not 
> >> working as I understand it should.
> >>
> >>
> >>
> >> I have tried to read the example in the wiki ( 
> >> 
> http://www.wicket-wiki.org.uk/wiki/index.php/*UploadDownload*<http://
> >> www.wicket-wiki.org.uk/wiki/index.php/UploadDownload>),
> >> but I can not really follow it. Too many libraries used 
> that are not 
> >> included and overall to confusing for a non professional 
> like myself.
> >>
> >> I did understand the example for the upload in the 
> wikiexamples though.
> >> No
> >> problems writing files to disk or even to database, following that 
> >> example code.
> >>
> >>
> >>
> >> My attempt to store images in the Database is looking 
> something like
> >> this:
> >>
> >>
> >>
> >> To write to the Database, I use this code sniped:
> >>
> >>
> >>
> >>             public final void onSubmit()
> >>
> >>             {
> >>
> >>                   try
> >>
> >>                   {
> >>
> >>                         // get the content of the upload field
> >>
> >>                         final FileUpload upload_image = 
> >> upload.getFileUpload();
> >>
> >>
> >>
> >>                         // create a byte array of the uploaded item
> >>
> >>                         byte[] bild = upload_image.getBytes();
> >>
> >>
> >>
> >>                         if(upload_image != null)
> >>
> >>                         {
> >>
> >>                           **write byte[] to database**
> >>
> >>                         }
> >>
> >>                   }
> >>
> >>                   catch (Exception e) { }
> >>
> >>             }
> >>
> >>
> >>
> >> So far so good. Got my byte array stored. The source file 
> is a jpeg 
> >> image.
> >> I am not sure if I miss some kind cast here to let the system know 
> >> what
> >> *sort* of byte array it should use.
> >>
> >>
> >>
> >> When I try to retrieve the image from the database, I use the 
> >> following
> >> code:
> >>
> >>
> >>
> >>       public ResourceReference getImage()
> >>
> >>       {
> >>
> >>             return new ResourceReference(some.class, "bild")
> >>
> >>             {
> >>
> >>                   public BufferedDynamicImageResource newResource()
> >>
> >>                   {
> >>
> >>                         try
> >>
> >>                         {
> >>
> >> // get the byte[] from DB
> >>
> >>                              byte[] bild = a.getBild();
> >>
> >>
> >>
> >> // create a buffered image template
> >>
> >>                              BufferedDynamicImageResource 
> resource = 
> >> new BufferedDynamicImageResource();
> >>
> >>                              BufferedImage image = new 
> >> BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
> >>
> >>
> >>
> >> // transform the byte[] back to an image (does it work 
> that way? How 
> >> does
> >>
> >> // java know it was a jpeg before and not a gif for example?)
> >>
> >>                              java.awt.Image i = 
> >> Toolkit.getDefaultToolkit ().createImage(bild);
> >>
> >>
> >>
> >>                              // convert image to buffered image
> >>
> >>                              
> image.getGraphics().drawImage(i, 0, 0, 
> >> null);
> >>
> >>
> >>
> >>                              Graphics g = image.getGraphics();
> >>
> >>                              g.drawImage(i, 0, 0, null);
> >>
> >>                              g.dispose();
> >>
> >>
> >>
> >> // return the image
> >>
> >>                              resource.setImage(image);
> >>
> >>                              return resource;
> >>
> >>                         }
> >>
> >>                         catch (Exception e) { }
> >>
> >>                   }
> >>
> >>             };
> >>
> >>       }
> >>
> >>
> >>
> >> This leads to a black box in the place my image is 
> supposed to be. So 
> >> I guess somewhere along the way I lose my image 
> information. My best 
> >> guess is, that the problem lies in the image conversion. 
> Jpeg isn't a 
> >> java.awt.image, I suppose.
> >>
> >>
> >>
> >> But still leaves the question, does wicket offer anything 
> more to me to
> >> help me here? To make things (even) simpler for me?
> >>
> >>
> >>
> >>
> >>
> >> The next attempt I took was storing images on the file 
> system. This went
> >> pretty well, as it pretty much is covered by the upload 
> example from the
> >> wicket examples. I was able to put the files in pretty 
> much any directory
> >> I
> >> liked, following that code. The problems started once 
> again, when I tried
> >> to
> >> retrieve and reuse the stored data. In the past I did a bit of PHP
> >> programming and was used to just store my things anywhere 
> on the web
> >> server
> >> as a file and access them again via URL. This doesn't 
> really work for me
> >> in
> >> the java world (using jboss application server, ejb3, 
> wicket), as the
> >> resources are stored in archives and not easily written to 
> archives at
> >> runtime (at least to my current knowledge ┬ľ please correct 
> me if wicket
> >> offers a way to do such a thing).
> >>
> >> I understand that wicket uses resource references to 
> stream resources not
> >> in the actual "environment" of the core application. But I 
> cannot seem to
> >> get that concept working correctly. I guess, my closest attempt to
> >> reference
> >> a resource outside an archive would be this one:
> >>
> >>
> >>
> >>
> >>
> >>             java.io.File f = new java.io.File("d:/someimage.jpg");
> >>
> >>             File ff = new File(f);
> >>
> >>
> >>
> >>             FileResourceStream frs = new FileResourceStream(ff);
> >>
> >>
> >>
> >>             ResourceStreamRequestTarget resource = new
> >> ResourceStreamRequestTarget(frs, frs.getContentType());
> >>
> >>
> >>
> >>             String url = 
> (String)RequestCycle.get().urlFor(resource);
> >>
> >>
> >>
> >>             WebMarkupContainer bild = new 
> WebMarkupContainer("bild");
> >>
> >>             add(bild);
> >>
> >>             bild.add(new SimpleAttributeModifier("src", url));
> >>
> >>
> >>
> >>
> >>
> >> which just leads to a runtime exception, I fail to 
> understand. Something
> >> about not being able to stream the object, I think.
> >>
> >>
> >>
> >> Once again, I am sure the problem is just based on my lack of java
> >> skills,
> >> rather then by anything wicket does, but never the less 
> the question
> >> stands:
> >> Is there anything wicket can do for me in that situation 
> to make my life
> >> easier and maybe even get the things done I want to do? 
> What would be the
> >> best practice to archive the goal, using wicket? My 
> current solution is a
> >> second webserver to which I upload the imagefiles and then 
> refer them via
> >> URL in wicket, pretty much like I would, using PHP. But I 
> guess that
> >> cannot
> >> be it, can it?
> >>
> >>
> >>
> >> Thanks in advance for anyone taking the time to read this 
> or even give me
> >> a few pointers. Sorry if my lack of java knowledge causes 
> most of my
> >> problems. Please feel free to point me to any resource 
> filling me in on
> >> what
> >> I am missing.
> >>
> >>
> >>
> >> Regards,
> >>
> >> Sebastian Pflugbeil
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> 
> --------------------------------------------------------------
> -----------
> >> Using Tomcat but need to do more? Need to support web 
> services, security?
> >> Get stuff done quickly with pre-integrated technology to 
> make your job
> >> easier
> >> Download IBM WebSphere Application Server v.1.0.1 based on Apache
> >> Geronimo
> >> 
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
dat=121642
> >>
> >> _______________________________________________
> >> Wicket-user mailing list
> >> Wicket-user@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>
> >>
> >>
> > 
> > 
> --------------------------------------------------------------
> -----------
> > Using Tomcat but need to do more? Need to support web 
> services, security?
> > Get stuff done quickly with pre-integrated technology to 
> make your job
> > easier
> > Download IBM WebSphere Application Server v.1.0.1 based on 
> Apache Geronimo
> > 
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
dat=121642
> > _______________________________________________
> > Wicket-user mailing list
> > Wicket-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > 
> > 
> 
> -- 
> View this message in context: 
> http://www.nabble.com/best-practice-for-uploading-and-using-co
ntent-%28images%29-with-wicket--tf2148976.html#a5940915
> Sent from the Wicket - User forum at Nabble.com.
> 
> 
> --------------------------------------------------------------
> -----------
> Using Tomcat but need to do more? Need to support web 
> services, security?
> Get stuff done quickly with pre-integrated technology to make 
> your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on 
> Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
dat=121642
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> 


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to