mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-02-06 10:35:06 +08:00
feat: enable multi-file upload for chat and agent workflows (#12977)
### Closes: #12921 ### What problem does this PR solve? Previously, multi-file upload was not working correctly across the application: - **Chat**: UI displayed "Upload max 5 files" but only the first file was actually uploaded - **Agent conversational mode**: Frontend sent multiple files but backend only processed one - **Agent task-mode file inputs**: Explicitly limited to single file only This PR enables proper multi-file upload support for both chat and agent workflows, allowing users to upload and process multiple files (up to 5) as the UI originally suggested. **Changes:** - `web/src/pages/next-chats/hooks/use-upload-file.ts`: Process all files instead of only `files[0]` - `api/apps/canvas_app.py`: Handle multiple files via `files.getlist("file")` - `web/src/pages/agent/debug-content/uploader.tsx`: Allow up to 5 files with `multiple={true}` - `agent/component/begin.py` & `fillup.py`: Support file arrays while maintaining backward compatibility ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
@ -253,11 +253,14 @@ async def upload(canvas_id):
|
||||
|
||||
user_id = cvs["user_id"]
|
||||
files = await request.files
|
||||
file = files['file'] if files and files.get("file") else None
|
||||
file_objs = files.getlist("file") if files and files.get("file") else []
|
||||
try:
|
||||
return get_json_result(data=FileService.upload_info(user_id, file, request.args.get("url")))
|
||||
if len(file_objs) == 1:
|
||||
return get_json_result(data=FileService.upload_info(user_id, file_objs[0], request.args.get("url")))
|
||||
results = [FileService.upload_info(user_id, f) for f in file_objs]
|
||||
return get_json_result(data=results)
|
||||
except Exception as e:
|
||||
return server_error_response(e)
|
||||
return server_error_response(e)
|
||||
|
||||
|
||||
@manager.route('/input_form', methods=['GET']) # noqa: F821
|
||||
|
||||
Reference in New Issue
Block a user