Página 1 de 1

enviar arquivo via http multipart/form-data

Enviado: 14 Out 2025 16:48
por jairxpereira
Olá pessoal,

Alguém sabe como eu envio um arquivo com o protocolo http com esta configuração

oServer := Win_OleCreateObject("Msxml2.ServerXMLHTTP.6.0")
oServer:SetRequestHeader("Content-Type", "multipart/form-data")

Estou tentando enviar o XML da nota fiscal emitida para o Mercado Livre.


Obrigado,
Jair Pereira

Re: enviar arquivo via http multipart/form-data

Enviado: 01 Dez 2025 13:39
por dbsh
Não posso garantir que vai funcionar 100%, foi tirada da minha lib, não testei a execução da funcão separada do meu sistema.
Esta compilando em harbour 3.2.0, ultima versao no git, sem erro.

Compilar: hbmk2 -l hbwin.hbc pctoledo.prg

Re: enviar arquivo via http multipart/form-data

Enviado: 03 Dez 2025 15:44
por Kapiaba
Algo assim?

Código: Selecionar todos

#include "fivewin.ch"

FUNCTION Main()

   LOCAL oHTTP := HTTPRequest():New()
   LOCAL cURL := "http://your-server.com/upload" // Replace with your target URL
   LOCAL cBoundary := "----WebKitFormBoundary7MA4YWxkTrZu0gW" // A unique boundary string

   // Set the Content-Type header for multipart/form-data
   // The boundary is crucial for separating different parts of the request
   oHTTP:SetRequestHeader("Content-Type", "multipart/form-data; boundary=" + cBoundary)

   // Construct the request body with multiple parts
   // Each part represents a form field or a file
   LOCAL cBody := ""
   cBody += "--" + cBoundary + CRLF
   cBody += "Content-Disposition: form-data; name=\"username\"" + CRLF + CRLF
   cBody += "testuser" + CRLF

   cBody += "--" + cBoundary + CRLF
   cBody += "Content-Disposition: form-data; name=\"file\"; filename=\"my_file.txt\"" + CRLF
   cBody += "Content-Type: text/plain" + CRLF + CRLF
   cBody += "This is the content of my file." + CRLF

   cBody += "--" + cBoundary + "--" + CRLF // End boundary

   // Send the request
   IF oHTTP:Send("POST", cURL, cBody)
      MsgBox("Request sent successfully. Response: " + oHTTP:GetResponseText())
   ELSE
      MsgBox("Error sending request: " + oHTTP:GetErrorText())
   ENDIF

   RETURN NIL
https://fivewin.com.br/index.php?/topic ... pinhaispr/

https://fivewin.com.br/index.php?/topic ... 3o-seguro/

http://www.pctoledo.com.br/forum/viewto ... &mobile=on

https://forums.fivetechsupport.com/~fiv ... 28#p247228

https://www.fivetechsupport.com/forums/ ... p?p=265845

Regards, saludos.