diff --git a/wwwroot/api/workspace_files.dspy b/wwwroot/api/workspace_files.dspy index b5f145b..24ea32b 100644 --- a/wwwroot/api/workspace_files.dspy +++ b/wwwroot/api/workspace_files.dspy @@ -42,7 +42,16 @@ full_dir = resolve_workspace_path(project_dir, space_dir, folder_id) if not os.path.isdir(full_dir): return {"widgettype": "Text", "options": {"otext": "目录不可用: ${p0}", "text": "目录不可用: ${p0}", "i18n": True, "i18n_params": {"p0": str(folder_id)}, "cfontsize": 0.9}} -upload_url = entire_url("/pipeline-sdlc/api/workspace_upload.dspy") + (("?session_id=" + session_id) if session_id else "") +# 上传端点必须与列表端点同参数:session_id + pipeline_id 都要透传。 +# 只传 session_id 的旧代码在通用助手(pipeline_id=_generic、无 session_id)下 +# 让 workspace_upload.dspy 走不到 _generic 分支,解析到别的项目目录 → +# 上传报「目标目录不存在」(2026-09-17 实测根因)。 +_uq = [] +if session_id: + _uq.append("session_id=" + session_id) +if pipeline_id: + _uq.append("pipeline_id=" + pipeline_id) +upload_url = entire_url("/pipeline-sdlc/api/workspace_upload.dspy") + (("?" + "&".join(_uq)) if _uq else "") # 拖拽上传脚本:读取文件 → base64 → form-encoded POST → 刷新浏览器 upload_script = (