Python FastAPI 不保存 POST 文件请求的内容

标签 python fastapi

我有一个简单的代码片段,用于使用 Python 中的 FastAPI 上传文件

@app.post("/uploadfile")
async def create_upload_file(file: UploadFile = File(...)):
    contents = await file.read()
    print(str(contents)[2:-1])
    with open(file.filename, "wb") as buffer:
        buffer.write(file.file.read())
    return {"filename": file.filename}

我用我的前端 React 应用程序尝试了这个,它工作得很好,除了它不保存我收到的数据。此代码应该获取 csv 文件并将其保存在本地。如您所见,我从文件中打印了 contents ,并且打印的 contents 是正确的,但是当我尝试使用 buffer.write(file. file.read()),我刚刚创建了文件,但其中没有内容,也就是空的。另请注意,当我打印 contents 时,我得到了字符串形式的 csv 文件。有没有办法解决这个问题,或者我需要处理字符串,将其转换为 csv,然后将此数据写入我创建的文件中?

最佳答案

文件数据一旦读取就无法再次使用。所以,只读一次

关于Python FastAPI 不保存 POST 文件请求的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66888868/

相关文章:

python - 为什么PyQt5 QPixmap使python崩溃?

python - 将 FastAPI 服务器与 Celery Workers 服务器分开 - 目录结构

logging - Uvicorn/FastAPI 重复日志记录

python - fastapi.Response() 不返回自定义响应

python获取每个成员只出现一次的组合组

python - 是否可以通过将文本存储为一个字符串或使用 Python 的其他内容来添加或减去文本中的所有时间?

python - 使用 os 杀死 python 线程

python - Jinja docx 模板,避免嵌套换行

python - 如何为 asyncpg 保留连接池并在数据库包装器中使用它?

javascript - 如何使用 FastAPI 为跨源请求设置 cookie