demyz0r Posted October 25, 2016 at 02:29 PM Report #599890 Posted October 25, 2016 at 02:29 PM Boa tarde, eu envio via HTTP(POST), um documento/ficheiro, cujo envio também o nome do documento/ficheiro no header do HTTP request. Eu consigo ir buscar todos os atributos do header através da função "$headers = getallheaders();". Até aqui tudo bem, mas eu queria ir buscar apenas o campo "[Name]", mas não estou a conseguir. De seguida segue o meu header: Obrigado desde já. Array ( [Content-Type] => application/x-www-form-urlencoded, multipart/form-data; [Content-Length] => 9615600 [Ua-Cpu] => AMD64 [Name] => C:\Users\ASUS\Desktop\Documentos.zip [User-Agent] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) [Accept-Language] => pt-PT [Accept-Encoding] => gzip, deflate [Accept] => */* [Connection] => Close [Cache-Control] => no-cache )
HappyHippyHippo Posted October 25, 2016 at 02:45 PM Report #599891 Posted October 25, 2016 at 02:45 PM qual o modelo/código usado para o envio do ficheiro ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
tiago.f Posted October 25, 2016 at 02:50 PM Report #599892 Posted October 25, 2016 at 02:50 PM Olá demyz0r, é um pouco estranho estares a ir aos header buscar essa informação. Deverias ter tudo o que precisas nas variáveis $_POST e $_FILES. De qualquer modo, fazendo getallheaders()['name'] irás buscar o valor pretendido...
demyz0r Posted October 25, 2016 at 03:01 PM Author Report #599893 Posted October 25, 2016 at 03:01 PM 15 minutos atrás, HappyHippyHippo disse: qual o modelo/código usado para o envio do ficheiro ? Como assim Hippo? A parte que envia o ficheiro?
demyz0r Posted October 25, 2016 at 03:04 PM Author Report #599894 Posted October 25, 2016 at 03:04 PM (edited) 13 minutos atrás, tiago.f disse: Olá demyz0r, é um pouco estranho estares a ir aos header buscar essa informação. Deverias ter tudo o que precisas nas variáveis $_POST e $_FILES. De qualquer modo, fazendo getallheaders()['name'] irás buscar o valor pretendido... Eu por um programa exterior envio ficheiros ao servidor, e vai o ficheiro em binário, e o header do Post. Eu já tentei esta função "$input = print_r($_FILES, true);" Mas com ela não consigo ir enviar o ficheiro, então tive de improvisar e fiz isto: Só assim consigo receber o ficheiro do lado do servidor. $input = file_get_contents('php://input'); $i = strpos($input, "\r\n\r\n"); if ($i !== false) $input = substr($input, $i + 4); file_put_contents('resultado.zip', $input); Edited October 25, 2016 at 03:04 PM by demyz0r
demyz0r Posted October 25, 2016 at 03:05 PM Author Report #599895 Posted October 25, 2016 at 03:05 PM 4 horas atrás, HappyHippyHippo disse: qual o modelo/código usado para o envio do ficheiro ? Penso que te estejas a referir a isto: Public Function pvPostFile(sUrl As String, sFileName As String, Optional ByVal bAsync As Boolean) As String 'Const STR_BOUNDARY As String = "3fbd04f5-b1ed-4060-99b9-fca7ff59c113" Dim nFile As Integer Dim baBuffer() As Byte Dim sPostData As String '--- read file nFile = FreeFile Open sFileName For Binary Access Read As nFile If LOF(nFile) > 0 Then ReDim baBuffer(0 To LOF(nFile) - 1) As Byte Get nFile, , baBuffer sPostData = StrConv(baBuffer, vbUnicode) End If Close nFile '--- prepare body sPostData = "Content-Disposition: form-data; filename=""" & Mid$(sFileName, InStrRev(sFileName, "\") + 1) & vbCrLf & _ "Content-Type: application/octet-stream" & vbCrLf & vbCrLf & _ sPostData & vbCrLf '--- post With CreateObject("MSXML2.XMLHTTP.6.0") .Open "POST", sUrl, bAsync .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" .SetRequestHeader "Content-Type", "multipart/form-data;" .SetRequestHeader "Name", FindLastModified .SetRequestHeader "Connection", "close" .Send pvToByteArray(sPostData) If Not bAsync Then pvPostFile = .ResponseText End If End With End Function Private Function pvToByteArray(sText As String) As Byte() pvToByteArray = StrConv(sText, vbFromUnicode) End Function É em VBA, o código que uso para enviar os ficheiros para o servidor
HappyHippyHippo Posted October 25, 2016 at 04:08 PM Report #599899 Posted October 25, 2016 at 04:08 PM pelo que parece, tudo indica que tens a info que necessitas na variável $_FILES do php IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
demyz0r Posted October 26, 2016 at 08:09 AM Author Report #599903 Posted October 26, 2016 at 08:09 AM 16 horas atrás, HappyHippyHippo disse: pelo que parece, tudo indica que tens a info que necessitas na variável $_FILES do php Podes-me dizer qual é essa informação necessária em concreto?
HappyHippyHippo Posted October 26, 2016 at 08:10 AM Report #599904 Posted October 26, 2016 at 08:10 AM o que necessitas, o nome do ficheiro IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
demyz0r Posted October 26, 2016 at 08:28 AM Author Report #599905 Posted October 26, 2016 at 08:28 AM 16 minutos atrás, HappyHippyHippo disse: o que necessitas, o nome do ficheiro No entanto o meu nome do ficheiro vai com o caminho, será disso? Pois eu envio o FindLastModified e ele devolve o caminho inteiro e não só o nome do ficheiro.
HappyHippyHippo Posted October 26, 2016 at 08:30 AM Report #599906 Posted October 26, 2016 at 08:30 AM está num tópico de PHP ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now