Jump to content
demyz0r

Get Header

Recommended Posts

demyz0r

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

)

 

Share this post


Link to post
Share on other sites
tiago.f

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...

Share this post


Link to post
Share on other sites
demyz0r
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?

Share this post


Link to post
Share on other sites
demyz0r
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 by demyz0r

Share this post


Link to post
Share on other sites
demyz0r
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

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites
demyz0r
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?

Share this post


Link to post
Share on other sites
demyz0r
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.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.