This is easier than that.

First you create an action like this:

    def serve_image():
        id = request.args(0)
        filename = get_image_filename_from(id)
        stream = open(filename,'rb')
        return response.stream(stream, attachment=True, filename=filename)

Then in your views you do:

    <img src="{{=URL('serve_image',args='1234')}}" />

where 1234 is the id of the image you want.

On Tuesday, 16 July 2013 14:36:09 UTC-5, Diego Carvallo wrote:
>
> I am using Web2Py and need to serve images from folder external to Web2py, 
> user images are dynamical and have to be loaded from a different system in 
> the same server therefore they cannot be moved to be contained in the 
> web2py application directory. So I cannot have a relative path to the 
> images. Symbolink links are not an option.
>
> I was thinking the solution could be to serve JPG images from an action 
> call or web service, this way the application can access the local file and 
> return it programatically without having to move a single image. For 
> example a view has the following code:
>
> <li class="file ext_jpg">
>  <figure class="image_container">
>  <img src=
> "controller_name/action_serving_images/unique_id_genereted_for_this_image.jpg"
>  
> alt="">
>  </figure>
> </li>
>
> having the Action:
> def action_serving_images(image_id)
>     #obtain image based on it's unique generated id
>     return image
>
> Or for the web service case:
> <li class="file ext_jpg">
>     <figure class="image_container">
>         <img src=
> "controller_name/service_serving_images/jpg/image/unique_id_genereted_for_this_image.jpg"
>  
> alt="">
>     </figure>
> </li>
>
> having the Service:
> def service_serving_images():
>  return service()
>
> @service.jpg
> def image(image_id):
>     #obtain image based on it's unique generated id
>     return image
>
>
>    1. *Is any of these options possible?
>    *
>    2. *How can I fetch the image and return it as a byte stream with 
>    the proper content-type so the browser can render it properly?
>    *
>    3. *Do i need to create a special decorator for JPG in the case of the 
>    Service? How?*
>
>
> I posted the same question on 
> stackoverflow<http://stackoverflow.com/questions/17667679/web2py-serve-images-from-action-call-or-web-service-call>
>  but 
> no answer yet... I appreciate any help! 
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to