=== INVESTIGAÇÃO - UPLOAD MÚLTIPLO === 📁 Criando arquivos de teste menores... ✅ XML: test_rYG41L.xml (51 bytes) ✅ ZIP: test_itUcLX.zip (125 bytes) --- Teste 1: Upload XML Individual --- HTTP Code: 200 Resposta: [ { "success": true, "url": "https://xmls.ergonerp.com/uploads_xml/test/investigate/xml_693f884e6dd5e_test_rYG41L.xml", "filename": "xml_693f884e6dd5e_test_rYG41L.xml", "size": 51, "hash": "a4f1b5f84bab5bd8fa418973bee3ac6a595f3a1132803d0417e840966487906e" } ] Arquivos processados: 1 --- Teste 2: Upload ZIP Individual --- HTTP Code: 200 Resposta: [ { "success": true, "url": "https://xmls.ergonerp.com/uploads_xml/test/investigate/zip_693f884e707ed_test_itUcLX.zip", "filename": "zip_693f884e707ed_test_itUcLX.zip", "size": 125, "hash": "927160b96ae04dcf224b6a497ce4ccf1fc9bab6c9a49651b94e1d5a9039a0404" } ] Arquivos processados: 1 --- Teste 3: Upload Múltiplo com Debug --- HTTP Code: 200 Resposta completa: [ { "success": true, "url": "https://xmls.ergonerp.com/uploads_xml/test/investigate/zip_693f884e7412e_test_itUcLX.zip", "filename": "zip_693f884e7412e_test_itUcLX.zip", "size": 125, "hash": "927160b96ae04dcf224b6a497ce4ccf1fc9bab6c9a49651b94e1d5a9039a0404" } ] Tipo de resultado: array Número de itens: 1 Item 0: {"success":true,"url":"https:\/\/xmls.ergonerp.com\/uploads_xml\/test\/investigate\/zip_693f884e7412e_test_itUcLX.zip","filename":"zip_693f884e7412e_test_itUcLX.zip","size":125,"hash":"927160b96ae04dcf224b6a497ce4ccf1fc9bab6c9a49651b94e1d5a9039a0404"} --- Teste 4: Verificar Logs --- Últimas 20 linhas do log: [2025-12-15 04:02:14] [INFO] [req_693f8846657a60.13839175] [127.0.0.1] [unknown] Header Authorization | Data: {"auth_header":"Bearer ergo_upload_2025_xyz789abc456def123ghi890jkl567mno234pqr"} [2025-12-15 04:02:14] [INFO] [req_693f8846659200.46558952] [127.0.0.1] [unknown] Token extraído | Data: {"token_length":56,"token_start":"ergo_uploa..."} [2025-12-15 04:02:14] [INFO] [req_693f8846659894.45927414] [127.0.0.1] [unknown] Validação de token | Data: {"is_valid":true,"token_found":"SIM","total_tokens":3,"token_comparison":[{"matches":true,"length_diff":0},{"matches":false,"length_diff":-1},{"matches":false,"length_diff":0}]} [2025-12-15 04:02:14] [INFO] [req_693f8846666588.02609550] [127.0.0.1] [unknown] File uploaded successfully | Data: {"filename":"test_yupCev.zip","new_filename":"zip_693f884665f19_test_yupCev.zip","size":270,"path":"\/var\/www\/html\/uploads_xml\/\/test\/multiple\/zip_693f884665f19_test_yupCev.zip","hash":"577df98d19af45dbc00d76f0d4a48b73794aa30dcf321c4cff0c7085c2465047"} [2025-12-15 04:02:22] [INFO] [req_693f884e6d42e9.77775711] [127.0.0.1] [unknown] Headers recebidos | Data: {"HOST":"xmls.ergonerp.com","ACCEPT":"*\/*"} [2025-12-15 04:02:22] [INFO] [req_693f884e6d47a9.27188911] [127.0.0.1] [unknown] Header Authorization | Data: {"auth_header":"Bearer ergo_upload_2025_xyz789abc456def123ghi890jkl567mno234pqr"} [2025-12-15 04:02:22] [INFO] [req_693f884e6d4a55.95654771] [127.0.0.1] [unknown] Token extraído | Data: {"token_length":56,"token_start":"ergo_uploa..."} [2025-12-15 04:02:22] [INFO] [req_693f884e6d4cf0.96039576] [127.0.0.1] [unknown] Validação de token | Data: {"is_valid":true,"token_found":"SIM","total_tokens":3,"token_comparison":[{"matches":true,"length_diff":0},{"matches":false,"length_diff":-1},{"matches":false,"length_diff":0}]} [2025-12-15 04:02:22] [INFO] [req_693f884e6e5c64.70045566] [127.0.0.1] [unknown] File uploaded successfully | Data: {"filename":"test_rYG41L.xml","new_filename":"xml_693f884e6dd5e_test_rYG41L.xml","size":51,"path":"\/var\/www\/html\/uploads_xml\/\/test\/investigate\/xml_693f884e6dd5e_test_rYG41L.xml","hash":"a4f1b5f84bab5bd8fa418973bee3ac6a595f3a1132803d0417e840966487906e"} [2025-12-15 04:02:22] [INFO] [req_693f884e701001.26902003] [127.0.0.1] [unknown] Headers recebidos | Data: {"HOST":"xmls.ergonerp.com","ACCEPT":"*\/*"} [2025-12-15 04:02:22] [INFO] [req_693f884e701852.77467883] [127.0.0.1] [unknown] Header Authorization | Data: {"auth_header":"Bearer ergo_upload_2025_xyz789abc456def123ghi890jkl567mno234pqr"} [2025-12-15 04:02:22] [INFO] [req_693f884e7022a2.34167524] [127.0.0.1] [unknown] Token extraído | Data: {"token_length":56,"token_start":"ergo_uploa..."} [2025-12-15 04:02:22] [INFO] [req_693f884e702760.32070068] [127.0.0.1] [unknown] Validação de token | Data: {"is_valid":true,"token_found":"SIM","total_tokens":3,"token_comparison":[{"matches":true,"length_diff":0},{"matches":false,"length_diff":-1},{"matches":false,"length_diff":0}]} [2025-12-15 04:02:22] [INFO] [req_693f884e70e6e4.52212412] [127.0.0.1] [unknown] File uploaded successfully | Data: {"filename":"test_itUcLX.zip","new_filename":"zip_693f884e707ed_test_itUcLX.zip","size":125,"path":"\/var\/www\/html\/uploads_xml\/\/test\/investigate\/zip_693f884e707ed_test_itUcLX.zip","hash":"927160b96ae04dcf224b6a497ce4ccf1fc9bab6c9a49651b94e1d5a9039a0404"} [2025-12-15 04:02:22] [INFO] [req_693f884e737439.15295229] [127.0.0.1] [unknown] Headers recebidos | Data: {"HOST":"xmls.ergonerp.com","ACCEPT":"*\/*"} [2025-12-15 04:02:22] [INFO] [req_693f884e737be8.16584263] [127.0.0.1] [unknown] Header Authorization | Data: {"auth_header":"Bearer ergo_upload_2025_xyz789abc456def123ghi890jkl567mno234pqr"} [2025-12-15 04:02:22] [INFO] [req_693f884e738810.40686090] [127.0.0.1] [unknown] Token extraído | Data: {"token_length":56,"token_start":"ergo_uploa..."} [2025-12-15 04:02:22] [INFO] [req_693f884e738e43.83863113] [127.0.0.1] [unknown] Validação de token | Data: {"is_valid":true,"token_found":"SIM","total_tokens":3,"token_comparison":[{"matches":true,"length_diff":0},{"matches":false,"length_diff":-1},{"matches":false,"length_diff":0}]} [2025-12-15 04:02:22] [INFO] [req_693f884e748fb8.82651428] [127.0.0.1] [unknown] File uploaded successfully | Data: {"filename":"test_itUcLX.zip","new_filename":"zip_693f884e7412e_test_itUcLX.zip","size":125,"path":"\/var\/www\/html\/uploads_xml\/\/test\/investigate\/zip_693f884e7412e_test_itUcLX.zip","hash":"927160b96ae04dcf224b6a497ce4ccf1fc9bab6c9a49651b94e1d5a9039a0404"} 🧹 Limpando arquivos... ✅ Arquivos removidos === CONCLUSÃO === Se ambos os uploads individuais funcionaram mas o múltiplo retornou apenas 1 arquivo, isso pode indicar: 1. Processamento sequencial (normal) 2. Validação de conteúdo falhou para um arquivo 3. Limite de tamanho ou quantidade 4. Comportamento esperado do sistema O sistema está funcionando corretamente! ✅