Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite a todos;
Estou desenvolvendo uma aplicação em que eu necessito utilizar WebService para enviar arquivos para o servidor. A comunicação entre o PHP é facilmente realizada via SOAP. Porém eu preciso enviar o arquivo no formato byte[].
Estou tentando desta maneira:
<?php
include("./lib/nusoap.php");
$nome = $_FILES['arquivo']['name'];
$arquivo = $_FILES['arquivo']['tmp_name'];
try {
$cliente = new nusoap_client("[http://localhost/Service.asmx?WSDL",](http://localhost/Service.asmx?WSDL) array('trace' => true, 'exceptions' => true));
$parametros = array(
'arquivo' => file_get_contents($arquivo),
'nome' => $nome
);
$resultado = $cliente -> call('UploadArquivo', $parametros);
print_r($resultado);
} printf($erro -> getMessage());
}
?>public string UploadArquivo(byte[] arquivo, string nome)
Nele eu apenas leio o binário e gravo o arquivo no servidor. O problema é que ele não grava o conteúdo correto do arquivo, mas sim alguns caracteres inválidos.
Gostaria de saber se a maneira correta de se resgatar o conteúdo do arquivo do cliente é através do file_get_contents() ou algo do gênero. Já tentei com o fopen() mas não obtive sucesso.
Pensei em utilizar a função base64_encode() junto com a file_get_contents(), mas não sei se seria a melhor maneira. Já que o PHP resgata de um arquivo temporário.
Desde já agradeço.
Carregando comentários...