초기 커밋 - EV AS 관리 시스템
This commit is contained in:
29
backend/utils.py
Normal file
29
backend/utils.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import os, uuid, qrcode
|
||||
from PIL import Image
|
||||
from fastapi import UploadFile
|
||||
|
||||
UPLOAD_DIR = os.getenv("UPLOAD_DIR", "/uploads")
|
||||
|
||||
def save_upload(file: UploadFile, sub_dir: str = "general") -> str:
|
||||
"""파일을 저장하고 /uploads 기준 상대 경로 반환"""
|
||||
ext = os.path.splitext(file.filename or "file")[1].lower() or ".jpg"
|
||||
folder = os.path.join(UPLOAD_DIR, sub_dir)
|
||||
os.makedirs(folder, exist_ok=True)
|
||||
filename = f"{uuid.uuid4().hex}{ext}"
|
||||
filepath = os.path.join(folder, filename)
|
||||
with open(filepath, "wb") as f:
|
||||
f.write(file.file.read())
|
||||
return f"/uploads/{sub_dir}/{filename}"
|
||||
|
||||
def generate_qr(charger_id: str, domain: str) -> str:
|
||||
"""QR 이미지를 저장하고 /uploads 기준 경로 반환"""
|
||||
url = f"https://{domain}/report/{charger_id}"
|
||||
qr = qrcode.QRCode(version=1, box_size=10, border=4)
|
||||
qr.add_data(url)
|
||||
qr.make(fit=True)
|
||||
img = qr.make_image(fill_color="black", back_color="white")
|
||||
folder = os.path.join(UPLOAD_DIR, "qr")
|
||||
os.makedirs(folder, exist_ok=True)
|
||||
filepath = os.path.join(folder, f"{charger_id}.png")
|
||||
img.save(filepath)
|
||||
return f"/uploads/qr/{charger_id}.png"
|
||||
Reference in New Issue
Block a user