我正在使用Web2Py,用户图像是动态的,必须从同一服务器中的不同系统加载,因此无法将它们移动到包含在web2py应用程序目录中。所以我不能拥有相对于图像的路径。符号链接不是一个选项。
我认为解决方案可能是通过动作调用或Web服务提供JPG图像,这样应用程序就可以访问本地文件并以编程方式返回,而无需移动单个图像。例如,视图具有以下代码:
<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>
采取行动:
def action_serving_images(image_id)
#obtain image based on it's unique generated id
return image
或者服务案例:
<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>
获得服务:
def service_serving_images():
return service()
@service.jpg
def image(image_id):
#obtain image based on it's unique generated id
return image
答案 0 :(得分:2)
这比这更容易。
首先你创建一个这样的动作:
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)
然后在你的观点中你做:
<img src="{{=URL('serve_image',args='1234')}}" />
其中1234是您想要的图像的ID。