=== INVESTIGAÇÃO - UPLOAD MÚLTIPLO === 📁 Criando arquivos de teste menores... ✅ XML: test_86YsNX.xml (51 bytes) ✅ ZIP: test_rMajY6.zip (125 bytes) --- Teste 1: Upload XML Individual --- HTTP Code: 200 Resposta: [ { "success": true, "url": "https://xmls.ergonerp.com/uploads_xml/test/investigate/xml_697aa02ad3634_test_86YsNX.xml", "filename": "xml_697aa02ad3634_test_86YsNX.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_697aa02ad7f57_test_rMajY6.zip", "filename": "zip_697aa02ad7f57_test_rMajY6.zip", "size": 125, "hash": "0b920a269978c79a67851d17a26f81f2b2b3b25d4b55cdae3a3970e990694c0d" } ] 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_697aa02adcbe9_test_rMajY6.zip", "filename": "zip_697aa02adcbe9_test_rMajY6.zip", "size": 125, "hash": "0b920a269978c79a67851d17a26f81f2b2b3b25d4b55cdae3a3970e990694c0d" } ] Tipo de resultado: array Número de itens: 1 Item 0: {"success":true,"url":"https:\/\/xmls.ergonerp.com\/uploads_xml\/test\/investigate\/zip_697aa02adcbe9_test_rMajY6.zip","filename":"zip_697aa02adcbe9_test_rMajY6.zip","size":125,"hash":"0b920a269978c79a67851d17a26f81f2b2b3b25d4b55cdae3a3970e990694c0d"} --- Teste 4: Verificar Logs --- Últimas 20 linhas do log: [2026-01-28 23:45:48] [INFO] [req_697a9facce1905.65108121] [127.0.0.1] [unknown] Header Authorization | Data: {"auth_header":"Bearer ergo_upload_2025_xyz789abc456def123ghi890jkl567mno234pqr"} [2026-01-28 23:45:48] [INFO] [req_697a9facce2210.30788082] [127.0.0.1] [unknown] Token extraído | Data: {"token_length":56,"token_start":"ergo_uploa..."} [2026-01-28 23:45:48] [INFO] [req_697a9facce2e68.50145651] [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}]} [2026-01-28 23:45:48] [INFO] [req_697a9faccf80b2.55797972] [127.0.0.1] [unknown] File uploaded successfully | Data: {"filename":"test_ETxynw.zip","new_filename":"zip_697a9facced98_test_ETxynw.zip","size":274,"path":"\/var\/www\/html\/uploads_xml\/\/test\/multiple\/zip_697a9facced98_test_ETxynw.zip","hash":"4daf383568e9a496a7373514b58d711d87d7c6e67a0fc3aa40955b414bb7426e"} [2026-01-28 23:47:54] [INFO] [req_697aa02ad258a6.17171537] [127.0.0.1] [unknown] Headers recebidos | Data: {"HOST":"xmls.ergonerp.com","ACCEPT":"*\/*"} [2026-01-28 23:47:54] [INFO] [req_697aa02ad26142.22197324] [127.0.0.1] [unknown] Header Authorization | Data: {"auth_header":"Bearer ergo_upload_2025_xyz789abc456def123ghi890jkl567mno234pqr"} [2026-01-28 23:47:54] [INFO] [req_697aa02ad27497.53845670] [127.0.0.1] [unknown] Token extraído | Data: {"token_length":56,"token_start":"ergo_uploa..."} [2026-01-28 23:47:54] [INFO] [req_697aa02ad27b08.50821746] [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}]} [2026-01-28 23:47:54] [INFO] [req_697aa02ad45709.63619882] [127.0.0.1] [unknown] File uploaded successfully | Data: {"filename":"test_86YsNX.xml","new_filename":"xml_697aa02ad3634_test_86YsNX.xml","size":51,"path":"\/var\/www\/html\/uploads_xml\/\/test\/investigate\/xml_697aa02ad3634_test_86YsNX.xml","hash":"a4f1b5f84bab5bd8fa418973bee3ac6a595f3a1132803d0417e840966487906e"} [2026-01-28 23:47:54] [INFO] [req_697aa02ad72ad0.64387872] [127.0.0.1] [unknown] Headers recebidos | Data: {"HOST":"xmls.ergonerp.com","ACCEPT":"*\/*"} [2026-01-28 23:47:54] [INFO] [req_697aa02ad73e64.47018554] [127.0.0.1] [unknown] Header Authorization | Data: {"auth_header":"Bearer ergo_upload_2025_xyz789abc456def123ghi890jkl567mno234pqr"} [2026-01-28 23:47:54] [INFO] [req_697aa02ad753c4.12399081] [127.0.0.1] [unknown] Token extraído | Data: {"token_length":56,"token_start":"ergo_uploa..."} [2026-01-28 23:47:54] [INFO] [req_697aa02ad75af9.22476674] [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}]} [2026-01-28 23:47:54] [INFO] [req_697aa02ad88628.04735690] [127.0.0.1] [unknown] File uploaded successfully | Data: {"filename":"test_rMajY6.zip","new_filename":"zip_697aa02ad7f57_test_rMajY6.zip","size":125,"path":"\/var\/www\/html\/uploads_xml\/\/test\/investigate\/zip_697aa02ad7f57_test_rMajY6.zip","hash":"0b920a269978c79a67851d17a26f81f2b2b3b25d4b55cdae3a3970e990694c0d"} [2026-01-28 23:47:54] [INFO] [req_697aa02adbf5f1.53616045] [127.0.0.1] [unknown] Headers recebidos | Data: {"HOST":"xmls.ergonerp.com","ACCEPT":"*\/*"} [2026-01-28 23:47:54] [INFO] [req_697aa02adc03a6.66557815] [127.0.0.1] [unknown] Header Authorization | Data: {"auth_header":"Bearer ergo_upload_2025_xyz789abc456def123ghi890jkl567mno234pqr"} [2026-01-28 23:47:54] [INFO] [req_697aa02adc2171.19937398] [127.0.0.1] [unknown] Token extraído | Data: {"token_length":56,"token_start":"ergo_uploa..."} [2026-01-28 23:47:54] [INFO] [req_697aa02adc28c2.09029463] [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}]} [2026-01-28 23:47:54] [INFO] [req_697aa02add8243.88965143] [127.0.0.1] [unknown] File uploaded successfully | Data: {"filename":"test_rMajY6.zip","new_filename":"zip_697aa02adcbe9_test_rMajY6.zip","size":125,"path":"\/var\/www\/html\/uploads_xml\/\/test\/investigate\/zip_697aa02adcbe9_test_rMajY6.zip","hash":"0b920a269978c79a67851d17a26f81f2b2b3b25d4b55cdae3a3970e990694c0d"} 🧹 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! ✅