Fazendo upload de arquivo para HTTP via Powershell
Temos um site php que carrega imagens para o servidor, um arquivo jpg simples com a nomeação correta. O problema é que precisamos carregar algumas vezes centenas deles por vez, mas o php aceita apenas 1 por vez, renomeia-os e carrega. Eu fiz operações de arquivo no PS muito bem, mas não consigo fazer upload.
A parte do PHP relacionada ao upload (até onde eu sei) fica assim:<form name='' id='' enctype='multipart/form-data' method='POST' action='/picture_upload.php' target='_self' onsubmit="default_on_submit(event)">
Eu verifiquei o Google, tópicos relacionados aqui também, e cheguei a isso:
$uri = "http://example.com/"
$pwd = ConvertTo-SecureString 'MyPassword' -AsPlainText -Force
$cred = New-Object Management.Automation.PSCredential ('myuser', $pwd)
$contentType = "multipart/form-data"
$body = @{
"FileName" = Get-Content($uploadPath) -Raw
}
Invoke-WebRequest -Uri $uri -Method Post -ContentType $contentType -Body $body
Eu conferi$uploadPath
e está corretoC:\Folder\file.jpg
. Uso credenciais usadas para fazer login no site em que posso carregar essas imagens via GUI.
Tentei alternar entre POST e PUT, sem alterações.
Substituindohttp://example.com
comhttp://example.com/file.jpg
também não forneceu diferença. Não tenho certeza, que é a maneira correta de usar o POST.
Temos o gateway da Web da McAffe na empresa, mas estou executando um script com um usuário que o ignora, por isso não está causando isso.
A mensagem de erro atual que estou recebendo é: "Invoke-WebRequest: a conexão subjacente foi fechada: ocorreu um erro inesperado em um recebimento".
Qualquer ajuda seria muito apreciada! E desculpe se isso já foi resolvido e simplesmente perdi uma entrada!
P.S. Eu também tentei isso -Script do PowerShell para fazer upload do arquivo de log do sistema local para o URL httpe retornaException calling "UploadFile" with "3" argument(s): "An exception occurred during a WebClient request."