Как вернуть элемент <img>с FastAPI - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь найти способ вставить изображение с помощью FastAPI, это мой код:

app = FastAPI()

app.add_middleware(
CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"]
)

@app.get("/files/{file_path:path}")


def read_user_me(file_path: str):
html_content = """

<html>
    <head>
        <title>Some HTML in here</title>
    </head>
    <body>
        <img src="file:///Users/user/Desktop/document/app//{0}"></img>
    </body>
</html>

"""

html_content =  html_content.format(file_path,file_path)
return HTMLResponse(content=html_content, status_code=200)

Когда я запускаю единорога и открываю localhost. Я получаю следующую ошибку:

Не разрешено загружать локальный ресурс: file: ///Users/user/Desktop/document/app//img.jpg

Пожалуйста, помогите

1 Ответ

0 голосов
/ 24 февраля 2020

Я предполагаю, что вы пытаетесь обслуживать статические c файлы, что задокументировано здесь (FastAPI) и здесь (Starlette).

В более продвинутой настройке (но общепринятой практике) вы можете обслуживать stati c файлы (и пользовательские загрузки), настроив прокси-сервер перед вашим приложением (например, nginx, lighttpd и т. Д.). которые оптимизированы для такого рода запросов).

Что касается безопасности, использование 'file: /// Users / us ...' предоставляет много информации о вашей операционной системе и файловой системе любому, кто имеет доступ к вашему сайту и потенциально открывает двери для таких вещей, как атаки XSS. Это плохая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...