Tim, I'm not clear that how to do use the caching proxy and maps a URL to the dispatcher.
I didn't find the archive about the SoftReferenceCache. Is there some exmaple that descript how to use is ~? :) Thanks very much! Cheers, Neil On Nov 15, 6:33 pm, Timothy Perrett <timo...@getintheloop.eu> wrote: > Neil, > > If you want to save the byte array, save it into the database, then just > write a caching proxy that maps a URL to the dispatcher. That is, use > SoftReferenceCache to cache the database read so that the next time the image > is requested there is no database hit. > > This has been discussed a fair few times on the list if i remember rightly, > so best off searching the archives if your not sure where to start. > > Cheers, Tim > > On 15 Nov 2009, at 04:16, Neil.Lv wrote: > > > > > I want to save the images to a directory, because this images will > > be used in the flash params. > > > This file path will be used in the javascript code . > > ### > > var imag=new Array(); > > imag[3]="/images/01.jpg"; > > ### > > > Cheers, > > Neil > > > On Nov 15, 12:05 pm, "Neil.Lv" <anim...@gmail.com> wrote: > >> Hi all, > > >> Thanks for your tips, and I have some silly question about this. > > >> 1:) a directory that's not part of the app's exploded WAR file > > >> The direcotry tree like this, and Where is i can create a well > >> defined directory > >> that's not part of the app's exploded WAR file ? I'm not familiar > >> with this. > > >> ### > >> demo > >> --src > >> --main > >> --resources > >> --i18n > >> --props > >> --scala > >> --webapp > >> --test > >> --target > >> ### > > >> 2:) If I store images to the RDBMS, and how can it be shown in the > >> webpage ? > >> ### > >> FileParamHolder(_, mime, name, data) > >> .... > >> item.receipt(data).receiptMime(mime) // ( Array[Byte] that saved > >> into database ) > >> ### > > >> :) > > >> Thanks very much ! > > >> Cheers, > >> Neil > > >> On Nov 15, 5:43 am, David Pollak <feeder.of.the.be...@gmail.com> > >> wrote: > > >>> On Sat, Nov 14, 2009 at 10:25 AM, Neil.Lv <anim...@gmail.com> wrote: > > >>>> Tim, > > >>>> haha, yeah. > > >>>> I use this code to get the images folder(the full path) of the app. > > >>>> LiftRules.getResource("/images/").open_!.toString.substring(6) > >>>> (The code is so redundant !) > >>>> -> G:\project\demo\src\main\webapp\images\ > > >>> You cannot rely on being able to write to a directory in an application. > >>> This is dependent on how the specific web app container handles things, > >>> but > >>> I would strongly suggest you write images to a directory that's not part > >>> of > >>> the app's exploded WAR file. And "strongly" is a very weak description of > >>> how forceful I'm being about this. This kind of code may change behaviour > >>> between your dev box and production, between versions of your app > >>> container. > > >>> If you want to store images to serve, either use a well defined directory > >>> outside your WAR file or put stuff in your RDBMS or put stuff up on Amazon > >>> (like Twitter does with images). Amazon has much better infrastructure > >>> for > >>> dealing with serving static content than just about anyone else. > > >>>> :) > > >>>> Thank you very much ! > > >>>> Cheers, > >>>> Neil > > >>>> On Nov 15, 1:50 am, Timothy Perrett <timo...@getintheloop.eu> wrote: > >>>>> Hmm, I guess you must be new to the JVM - you cant write a file inside a > >>>> WAR file; it does not work like that. > > >>>>> You'll need to write to a fully qualified path (as per my example). > > >>>>> Cheers, tim > > >>>>> On 14 Nov 2009, at 17:34, Neil.Lv wrote: > > >>>>>> It show this error message: > > >>>>>> ERROR - java.io.FileNotFoundException: \images\003.jpg > > >>>>>> ######### this is the code > > >>>>>> val receiptOk = fileHolder match { > >>>>>> case Full(FileParamHolder(_, null, _, _)) => true > >>>>>> case Full(FileParamHolder(_, mime, name, data)) > >>>>>> if mime.startsWith("image/") => { > >>>>>> var buff = new java.io.BufferedInputStream(new ByteArrayInputStream > >>>>>> (data)) > >>>>>> try { > >>>>>> var fos = new java.io.FileOutputStream(new File("/images/" + > >>>>>> name)) > >>>>>> var in = 0 > >>>>>> do { > >>>>>> in = buff.read() > >>>>>> if (in != -1){ > >>>>>> fos.write(in) > >>>>>> } > >>>>>> } while((in != -1)) > >>>>>> fos = null > >>>>>> in = 0 > >>>>>> } catch { > >>>>>> case e => Log.error(e) > >>>>>> } finally { > >>>>>> buff.close() > >>>>>> } > >>>>>> buff = null > >>>>>> true > >>>>>> } > >>>>>> case Full(_) => { > >>>>>> S.error(S.??("invalid.receipt.attachment")) > >>>>>> false > >>>>>> } > >>>>>> case _ => true > >>>>>> } > > >>>>>> ######### > > >>>>>> Maybe this code is wrong ? > > >>>>>> new File("/images/" + name) > > >>>>>> I want to save it in the main\webapp\images\ folder. > >>>>>> -> main\webapp\images\ 003.jpg > > >>>>>> :) > > >>>>>> Cheers, > >>>>>> Neil > > >>>>>> On Nov 15, 12:23 am, Timothy Perrett <timo...@getintheloop.eu> wrote: > >>>>>>> Neil, > > >>>>>>> Try something like: > > >>>>>>> var buff = new java.io.BufferedInputStream(input) > >>>>>>> try { > >>>>>>> var fos = new java.io.FileOutputStream(new File("/some/root/ > >>>>>>> filepath/" + image_hash_filename)) > >>>>>>> var in = 0 > >>>>>>> do { > >>>>>>> in = buff.read() > >>>>>>> if (in != -1){ > >>>>>>> fos.write(in) > >>>>>>> } > >>>>>>> } while((in != -1)) > >>>>>>> fos = null > >>>>>>> in = 0} catch { > > >>>>>>> case e => Log.error(e) > > >>>>>>> } finally { > >>>>>>> buff.close() > >>>>>>> } > >>>>>>> buff = null > >>>>>>> } > > >>>>>>> In my case, I had the data as an input stream - manipulate this code > >>>>>>> to take it however you need. > > >>>>>>> Cheers, Tim > > >>>>>>> On Nov 14, 7:55 am, "Neil.Lv" <anim...@gmail.com> wrote: > > >>>>>>>> Here is some code , but it's wrong! > > >>>>>>>> --> java.io.FileNotFoundException: \images\1.jpeg > > >>>>>>>> if mime.startsWith("image/") => { > >>>>>>>> try{ > >>>>>>>> var file: File = new File("/images/1.jpeg"); > >>>>>>>> var fos:FileOutputStream = new FileOutputStream(file); > >>>>>>>> fos.write(data) > >>>>>>>> } catch { > >>>>>>>> case e => println("exception: " + e) > >>>>>>>> } > >>>>>>>> e.receipt(data).receiptMime(mime) > >>>>>>>> true > >>>>>>>> } > > >>>>>>>> I don't know how to write the code in the try catch statement. > > >>>>>>>> Does anyone can help me ?~ > > >>>>>>>> Thanks very much ! > > >>>>>>>> Cheers, > >>>>>>>> Neil > > >>>>>>>> On Nov 14, 1:58 pm, "Neil.Lv" <anim...@gmail.com> wrote: > > >>>>>>>>> Hi all, > > >>>>>>>>> How to save the uploaded image into the folder via fileUpload in > >>>>>>>>> Lift? > > >>>>>>>>> I don't want to save it in the database, the example code in the > >>>>>>>>> Pocketchangeapp > > >>>>>>>>> ### > >>>>>>>>> val receiptOk = fileHolder match { > >>>>>>>>> case Full(FileParamHolder(_, null, _, _)) => true > >>>>>>>>> case Full(FileParamHolder(_, mime, _, data)) > >>>>>>>>> if mime.startsWith("image/") => { > >>>>>>>>> // How can i save the data into a image in the folder. > >>>>>>>>> e.receipt(data).receiptMime(mime) > >>>>>>>>> true > >>>>>>>>> } > >>>>>>>>> case Full(_) => { > >>>>>>>>> S.error("Invalid receipt attachment") > >>>>>>>>> false > >>>>>>>>> } > >>>>>>>>> case _ => true > >>>>>>>>> } > >>>>>>>>> ### > > >>>>>>>>> To save the image into the webapp\images folder, and it's shown > >>>>>>>>> just use this link: > >>>>>>>>> /images/img1.jpg > > >>>>>>>>> Thanks for any suggestion! > > >>>>>>>>> Cheers, > >>>>>>>>> Neil > > >>> -- > >>> Lift, the simply functional web frameworkhttp://liftweb.net > >>> Beginning Scalahttp://www.apress.com/book/view/1430219890 > >>> Follow me:http://twitter.com/dpp > >>> Surf the harmonics --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---