| 12345678910111213141516171819202122232425 |
- from fastapi import FastAPI, HTTPException
- from fastapi.staticfiles import StaticFiles
- from fastapi.responses import FileResponse
- import os
- app = FastAPI()
- # 挂载 uploads 目录作为静态文件目录
- upload_dir = "uploads"
- if not os.path.exists(upload_dir):
- os.makedirs(upload_dir)
- app.mount("/uploads", StaticFiles(directory=upload_dir), name="uploads")
- # 提供文件下载接口
- @app.get("/download/{filename}")
- async def download_file(filename: str):
- file_path = os.path.join(upload_dir, filename)
- if os.path.exists(file_path):
- return FileResponse(file_path, filename=filename)
- raise HTTPException(status_code=404, detail="File not found")
- if __name__ == "__main__":
- import uvicorn
- uvicorn.run(app, host="0.0.0.0", port=8007)
|