Ir para conteúdo
Fórum Script Brasil
  • 0

Enviar de servidor para outro


hipnos na area

Pergunta

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 para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...