Я смог загрузить большой файл на сервер, используя следующий код -
@app.route("/upload", methods=["POST"])
def upload():
with open("/tmp/output_file", "bw") as f:
chunk_size = 4096
while True:
chunk = request.stream.read(chunk_size)
if len(chunk) == 0:
return
f.write(chunk)
Но если я использую request.form ['userId'] или любой параметр, который отправляется как данные формы в приведенном выше Код не удается.
Как говорится в одном из постов блога, в запросе Flask есть поток, который будет содержать данные файла, которые вы загружаете. Вы можете прочитать его, рассматривая его как файлоподобный объект. Хитрость заключается в том, что вы не должны использовать другие атрибуты запроса, такие как request.form или request.file, потому что это материализует поток в память / файл. Flask по умолчанию сохраняет файлы на диск, если они превышают 500 КБ, поэтому не трогайте файл.
Есть ли способ, где мы можем отправить дополнительные параметры, такие как userId, вместе с файлом, загружаемым в flask?