Jump to content
Fórum Script Brasil
  • 0

Enviar de servidor para outro


hipnos na area

Question

Estou tentando transmitir um arquivo de um servidor para outro por SOCKET, porem quando o arquivo excede 2 megas a página "trava" e acusa que a página não existe.

Tentei com Curl e ocorre o mesmo problema.

Tentei simular em localhost e ele trava tambem.

POST /php-service.php HTTP/1.1
Host: localhost
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 7274248

<?xml version="1.0"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Header></soap:Header>
  <soap12:Body>
    <m:GetStockPrice xmlns:m="http://www.example.org/stock">
      <m:StockName>IBM</m:StockName>
      <m:Data>[MEU ARQUIVO BINARIO...]</m:Data>
    </m:GetStockPrice>
  </soap12:Body>
</soap12:Envelope>
Aonde está 7274248 é "7 megas", é o peso do SOAP+meu arquivo. Isso seria alguma configuração no PHP.INI? Tentei simular em localhost e ele trava tambem. Vejam como eu fiz o código em um teste local com SOCKET (somente de exemplo para testarem): Esse arquivo é o server-to-server.php
<?php
if($conn = fsockopen('localhost', 80, $errno, $errstr, 120)){
    $eol = chr(13).chr(10);
    $meu_arquivo = file_get_contents('arquivo.txt');//Esse arquivo tem 7 megas em média
    $headers = 'POST /php-service.php HTTP/1.1'.$eol.
        'Host: localhost'.$eol.
        'Content-Type: application/soap+xml; charset=utf-8'.$eol.
        'Content-Length: '.strlen($meu_arquivo).$eol.
        'Connection: close'.$eol.$eol;

    if(fputs($conn,$headers.$meu_arquivo)){
        while(!feof($conn)){
            echo fgets($conn,128);
        }
    } else {
        echo 'Falha no PUT ao enviar o XML.';
    }
    fclose($conn);
}
?>
Esse arquivo é o php-service.php
<?php
echo '<pre>';
print_r($_SERVER);
echo '</pre>Dados recebidos:<br>',
    $GLOBALS['HTTP_RAW_POST_DATA'];
?>

O arquivo.txt deve pesar pelo menos 5 megas para verem o problema, podem rodar em localhost.

Para testar basta colocar ambos arquivos na mesma pasta(pasta raiz do seu servidor) e testar chamando o endereço:

http://localhost/server-to-server.php ou http://127.0.0.1/server-to-server.php

Lembrando, tentei com Curl e ocorre o mesmo problema.

Obrigado.

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...