2015-07-15 3 views
1

Я новичок web2py, и у меня есть следующие сомнения. У меня есть приложение web2py, которое принимает некоторые данные от пользователя, а затем генерирует некоторые изображения. Эти изображения затем сохраняются внутри папки под частной папкой. Я хочу отобразить эти изображения в приложении web2py. Как это сделать? Кроме того, я не хочу загружать изображения в базу данных, а просто читать их из папки и отображать их непосредственно в приложении. Я получил ссылку отсюда: http://www.widecodes.com/0xmqqVkXkP/web2py-downloading-files-displaying-images.htmlПоказать набор изображений из папки на Web2py

Но, не мог это понять. Любая помощь? Спасибо заранее!

ответ

1

Предполагая, что вы знаете имя и путь файла, вы можете вернуть любой файл в браузер через действие контроллера, которое вызывает response.stream. В контроллере (например, default.py):

import os 

def serve_file(): 
    filename = request.args(0) 
    path = os.path.join(request.folder, 'private', 'file_subfolder', filename) 
    return response.stream(path) 

В представлении вы бы тогда включать в себя изображение следующим образом:

<img src="{{=URL(default, serve_file, args=filename)}}" /> 

Если изображения предназначены для общественности, лучший вариант чтобы хранить их в/статической папке - файлы в каталоге/статики просто могут быть поданы непосредственно через их URL:

<img src="{{=URL('static', 'image_files', args=filename)}}" /> 

Этот метод не требует специальных действий контроллера для вызова response.stream.

Смежные вопросы