Files
2024-07-10 18:21:23 +10:00

55 lines
1.8 KiB
Python

import server
import os
from aiohttp import web
from .utils import is_safe_path, strip_path
from .utils import folder_paths # Import folder_paths from utils
routes = server.PromptServer.instance.routes
@routes.post("/upload/document")
async def upload_document(request):
try:
data = await request.post()
file = data['document']
filename = file.filename
content = file.file.read()
input_dir = folder_paths.get_input_directory()
file_path = os.path.join(input_dir, filename)
if not is_safe_path(file_path):
return web.Response(status=403, text="Invalid file path")
with open(file_path, 'wb') as f:
f.write(content)
return web.json_response({"name": filename})
except Exception as e:
print(f"Error in upload_document: {str(e)}")
return web.Response(status=500, text=str(e))
@routes.get("/getpath")
async def get_path(request):
query = request.rel_url.query
if "path" not in query:
return web.Response(status=400, text="Missing 'path' parameter")
path = os.path.abspath(strip_path(query["path"]))
if not os.path.exists(path) or not is_safe_path(path):
return web.json_response([])
valid_extensions = query.get("extensions", "").split(",")
valid_items = []
for item in os.scandir(path):
try:
if item.is_dir():
valid_items.append(item.name + "/")
continue
if not valid_extensions or item.name.split(".")[-1].lower() in valid_extensions:
valid_items.append(item.name)
except OSError:
pass
return web.json_response(valid_items)
WEB_DIRECTORY = os.path.join(os.path.dirname(__file__), "web")