diff --git a/src/api/langflow_files.py b/src/api/langflow_files.py index 85b265cc..a5595813 100644 --- a/src/api/langflow_files.py +++ b/src/api/langflow_files.py @@ -194,9 +194,9 @@ async def upload_and_ingest_user_file( content = await upload_file.read() # Create temporary file + safe_filename = upload_file.filename.replace(" ", "_").replace("/", "_") temp_fd, temp_path = tempfile.mkstemp( - suffix=f"_{upload_file.filename}", - prefix="langflow_upload_" + suffix=f"_{safe_filename}" ) try: diff --git a/src/api/router.py b/src/api/router.py index 5472e738..154757a5 100644 --- a/src/api/router.py +++ b/src/api/router.py @@ -119,9 +119,9 @@ async def langflow_upload_ingest_task( content = await upload_file.read() # Create temporary file + safe_filename = upload_file.filename.replace(" ", "_").replace("/", "_") temp_fd, temp_path = tempfile.mkstemp( - suffix=f"_{upload_file.filename}", - prefix="langflow_upload_" + suffix=f"_{safe_filename}" ) # Write content to temp file diff --git a/src/models/processors.py b/src/models/processors.py index 3e972a39..a817f8d4 100644 --- a/src/models/processors.py +++ b/src/models/processors.py @@ -371,7 +371,12 @@ class LangflowFileProcessor(TaskProcessor): content = f.read() # Create file tuple for upload - filename = os.path.basename(item) + temp_filename = os.path.basename(item) + # Extract original filename from temp file suffix (remove tmp prefix) + if "_" in temp_filename: + filename = temp_filename.split("_", 1)[1] # Get everything after first _ + else: + filename = temp_filename content_type, _ = mimetypes.guess_type(filename) if not content_type: content_type = 'application/octet-stream'