MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Enviar um arquivo mp3 para um WebServer via vba Access

    avatar
    enio.eltz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 19/07/2016

    Enviar um arquivo mp3 para um WebServer via vba Access Empty Enviar um arquivo mp3 para um WebServer via vba Access

    Mensagem  enio.eltz 27/11/2023, 20:08

    Boa tarde a todos

    Peço um auxílio nesta necessidade. O objetivo é enviar um arquivo mp3 para um Web Server através de um código VBA Access. Eu clico em um botão e o arquivo é enviado. Não é necessário selecionar o arquivo antes em um diretório, pois é um arquivo padrão.
    Antes de seguir com os procedimentos no Access, eu testei, com sucesso, envio do arquivo pelo Postman e pesquisei alguns exemplos. No momento eu estou testando este código:

    Código:
    Dim objHTTPaudio As Object
    Dim strEspera As String
    Dim strBoundaryFile, strBoundaryAudio As String
    Dim strURLaudio, strFileAudio, strLengthAudio As String
        
    Set objHTTPaudio = CreateObject("WinHttp.WinHttpRequest.5.1")
        
    strEspera = "espera.mp3"
        
    strBoundaryFile = String(4, "-") & "WebKitFormBoundary7MA4YWxkTrZu0gW"
    strBoundaryAudio = strBoundaryFile & vbNewLine
                
    strURLaudio = "URL_do_Web_Service"
                
    strFileAudio = strFileAudio & "-" & strBoundaryFile & vbCrLf
    strFileAudio = strFileAudio & "Content-Disposition: form-data; name=""file""; " & "filename=""" & strEspera & """" & vbCrLf
    strFileAudio = strFileAudio & "Content-Type: audio/mpeg" & vbCrLf
    strFileAudio = strFileAudio & arqEspera & vbCrLf
    strFileAudio = strFileAudio & "--" & strBoundaryFile & "--" & vbCrLf & vbCrLf
                
    strLengthAudio = Len(strFileAudio)
                
                objHTTPaudio.Open "POST", strURLaudio, False
                objHTTPaudio.setRequestHeader "Authorization", lerJsonAuth
                objHTTPaudio.setRequestHeader "Content-Length", strLengthAudio
                objHTTPaudio.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & strBoundaryAudio
                objHTTPaudio.setRequestHeader "Accept", "*/*"
                objHTTPaudio.setRequestHeader "User-Agent", "MSAccess"
                objHTTPaudio.setRequestHeader "Connection", "keep-alive"
                objHTTPaudio.send strFileAudio

    Set objHTTPaudio = Nothing

    Mas ao executar eu recebo este erro:

    {"errorCode":"05ade068-4f43-49bb-a428-75ea8f2d3853","url":"URL_DO_WEB_SERVER","friendlyMessage":"Erro inesperado","exceptionMessage":"Required request part 'file' is not present"}

    Na linha do código strFileAudio = strFileAudio & arqEspera & vbCrLf eu tenho a variável arqEspera que eu tenho como objetivo usar como o arquivo a ser enviado ao Web Server. Este arquivo é "espera.mp3" e está salvo no diretório "E:\audio\".

    Eu entendo que este pode ser o meu problema. Eu não encontrei nas pesquisas que eu fiz uma maneira de buscar o arquivo mp3 a ser enviado. O código que eu enviei acima não mostra as tentativas que eu fiz para tentar "buscar" o arquivo pois de nenhuma forma eu consegui.

    No Postman, eu verifiquei o code com HTTP que ele fornece, onde temos esta parte:

    Código:
    Content-Length: 182
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="file"; filename="espera.mp3"
    Content-Type: audio/mpeg

    (data)
    ------WebKitFormBoundary7MA4YWxkTrZu0gW--

    A partir disso eu fiz o strFileAudio e Headers de forma semelhante.

    Agradeço desde já qualquer ajuda.

    Enio Eltz Filho.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7922
    Registrado : 15/03/2013

    Enviar um arquivo mp3 para um WebServer via vba Access Empty Re: Enviar um arquivo mp3 para um WebServer via vba Access

    Mensagem  Alvaro Teixeira 30/11/2023, 11:34

    Olá Enio Eltz,

    Fazer o upload via webservice, neste caso por WinHttpRequest não é a minha praia.
    Mas lembrei-me que pode fazer o upload via FTP, pesquise no fórum tem exemplos já prontos, pode ser uma alternativa.

    Abraço


    Última edição por Alvaro Teixeira em 11/12/2023, 00:14, editado 1 vez(es)
    avatar
    enio.eltz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 19/07/2016

    Enviar um arquivo mp3 para um WebServer via vba Access Empty Re: Enviar um arquivo mp3 para um WebServer via vba Access

    Mensagem  enio.eltz 30/11/2023, 12:36

    Olá Alvaro

    Obrigado pela resposta. Talvez seja uma possibilidade enviar por FTP.

    Eu conversei com o desenvolvimento da plataforma, que me passou o seguinte: O post requer só que tu abra uma janela informando o arquivo (por baixo acaba passando a referencia do caminho dele).

    Eu pesquisei e obtive exemplos de como abrir uma janela e selecionar o arquivo desejado. Mas, pelo que entendi, é enviado o caminho do arquivo e não o arquivo em si. No exemplo do Postman que eu postei tem "(data)" que eu entendo ser o arquivo.

    Mas vou continuar as pesquisas.

    Enio
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7922
    Registrado : 15/03/2013

    Enviar um arquivo mp3 para um WebServer via vba Access Empty Re: Enviar um arquivo mp3 para um WebServer via vba Access

    Mensagem  Alvaro Teixeira 11/12/2023, 00:29

    Olá Enio Eltz,

    Desculpe só responder agora.
    Estive olhar um pouco para o código que tem, e deveria inficar o caminho completo onde está o ficheiro MP3.
    Depois para enviar, só o nome pode obter através do "path" completo com este código por exemplo.

    Já fiz algumas coisas com algumas API (google e servicos de SMS) em VBA
    Creio que para poder ajudar, será melhor dar mais detalhes da documentação da API que pretende usar.

    Abraço

    Conteúdo patrocinado


    Enviar um arquivo mp3 para um WebServer via vba Access Empty Re: Enviar um arquivo mp3 para um WebServer via vba Access

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/5/2024, 00:27