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

Reply via email to