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