Reuse file upload logic but store docs under index.
(self, index_id: str)
| 840 | self.send_json_response({'error': str(e)}, status_code=500) |
| 841 | |
| 842 | def handle_index_file_upload(self, index_id: str): |
| 843 | """Reuse file upload logic but store docs under index.""" |
| 844 | form = cgi.FieldStorage(fp=self.rfile, headers=self.headers, environ={'REQUEST_METHOD':'POST', 'CONTENT_TYPE': self.headers['Content-Type']}) |
| 845 | uploaded_files=[] |
| 846 | if 'files' in form: |
| 847 | files=form['files'] |
| 848 | if not isinstance(files, list): |
| 849 | files=[files] |
| 850 | upload_dir='shared_uploads' |
| 851 | os.makedirs(upload_dir, exist_ok=True) |
| 852 | for f in files: |
| 853 | if f.filename: |
| 854 | unique=f"{uuid.uuid4()}_{f.filename}" |
| 855 | path=os.path.join(upload_dir, unique) |
| 856 | with open(path,'wb') as out: out.write(f.file.read()) |
| 857 | db.add_document_to_index(index_id, f.filename, os.path.abspath(path)) |
| 858 | uploaded_files.append({'filename':f.filename,'stored_path':os.path.abspath(path)}) |
| 859 | if not uploaded_files: |
| 860 | self.send_json_response({'error':'No files uploaded'}, status_code=400); return |
| 861 | self.send_json_response({'message':f"Uploaded {len(uploaded_files)} files","uploaded_files":uploaded_files}) |
| 862 | |
| 863 | def handle_build_index(self, index_id: str): |
| 864 | try: |
no test coverage detected