2014-11-17 8 views
5

W jaki sposób mogę wyświetlać obrazy, które nie znajdują się w folderze statycznym?Jak mogę utworzyć łącze do zdjęć, które nie znajdują się w folderze statycznym w kolbie

Aktualnie zapisuję przesłane przez użytkownika zdjęcia w katalogu znajdującym się poza folderem z kolbą (Na openshift, obraz aktualnie zapisywany w folderze danych pod app-root/data, a pliki z kolbami w app-root/repo/).

W moich szablonach w jaki sposób mogę wyświetlać pliki obrazów?

Używając url_for, w jaki sposób mogę odwoływać się do tych plików graficznych, które znajdują się poza folderem skrzynki?

- data/ 
| 
    -- uploads/ 
- repo/ 
| 
    -- app/ 
    | 
    -- __init__.py 

Jak widać folder danych poza folderem aplikacji skrzynki. W jaki sposób mogę wygenerować linki do plików przechowywanych w katalogu z aplikacjami do butelek w wersji data/uploads (jeden poziom wyżej)?

+0

Proszę podać strukturę projektu (drzewo katalogów) i rozwiązania, które już wypróbowałeś? – boh

Odpowiedz

14

Masz funkcję send_from_directory, że robi to, co chcesz, co chciałbym zrobić, to zadeklarować stałą o nazwie MEDIA_FOLDER z katalogu, w którym znajdują się pliki multimedialne, a następnie, jedyną rzeczą, którą musisz zrobić, to wywołać funkcję tak:

from config import MEDIA_FOLDER 

@app.route('/uploads/<path:filename>') 
def download_file(filename): 
    return send_from_directory(MEDIA_FOLDER, filename, as_attachment=True) 

Następnie, aby ją wywołać, po prostu to zrobić:

{{ url_for('download_file', filename='dogs.jpg') }} 

Możesz mieć więcej informacji na ten temat here.

+0

Dzięki. Każdy pomysł, w jaki sposób uzyskać łącze do pliku przy użyciu url_for? –

+0

@sarul Właśnie edytowałem post, ale w zasadzie po prostu musisz zrobić {{url_for ('download_file', filename = = pss.jpg ')}}} na przykład. –

+0

Próbuję odwołać się do url_for w części src mojego tagu img i nadal nie można go uruchomić. Zaktualizowałem swoje pytanie o strukturę plików. Zasadniczo próbuję wygenerować ścieżki plików dla plików przechowywanych w danych/przesyłanych z aplikacji kolby, która jest przechowywana w innym katalogu –

Powiązane problemy