Finalmente, consegui montar um arquivo csv no servidor e baixar no notebook.
O meu problema estava no comando readfile("$pBling.csv"), ele baixava o arquivo csv mas também todo o código HTML que fazia parte do contexto do código PHP.
Na base da persistência, encontrei o comando ob_get_clean que "limpa" a área de trabalho e só manda o arquivo csv.
arquivo bling.php
<?php
include('menu.php');
$pedido=$_GET['pedido'];
$pBling=$_GET['pBling'];
$query=$mysqli->query("select count(bling) as contagem from tbpedido where bling=$pBling");
$verificar=$query->fetch_all(MYSQLI_ASSOC)[0]['contagem'];if($verificar){exit;}
$mysqli->query("update tbpedido set bling=$pBling where ped=$pedido");
$contato="Consumidor Final";
$query=$mysqli->query("select * from tbhistped where ped=$pedido");
$itens=json_decode(json_encode($query->fetch_all(MYSQLI_ASSOC)));
$query=$mysqli->query("select sum(subtotal) as soma from tbhistped
where subtotal < 0 and ped=$pedido");
$desconto=($query->fetch_assoc()['soma'])? abs($query->fetch_assoc()['soma']):0;
$query=$mysqli->query("select total from tbpedido where ped=$pedido");
$total=$query->fetch_assoc()['total'];
$query=$mysqli->query("select dia from tbpedido
where ped = $pedido");
$data=date('d/m/Y',strtotime($query->fetch_assoc()['dia']));
$dados = array(
array("Número pedido","Nome Comprador","Data","CPF/CNPJ Comprador","Endereço Comprador","Bairro Comprador","Número Comprador","Complemento Comprador","CEP Comprador","Cidade Comprador","UF Comprador","Telefone Comprador","Celular Comprador","E-mail Comprador","Produto","SKU","Un","Quantidade","Valor Unitário","Valor Total","Total Pedido","Valor Frete Pedido","Valor Desconto Pedido","Outras despesas","Nome Entrega","Endereço Entrega","Número Entrega","Complemento Entrega","Cidade Entrega","UF Entrega","CEP Entrega","Bairro Entrega","Transportadora","Serviço","Tipo Frete","Observações","Qtd Parcela","Data Prevista","Vendedor","Forma Pagamento","ID Forma Pagamento"));foreach($itens as $item){if($item->subtotal>0){
$dados[]=array($pBling,$contato,$data,null,null,null,null,null,null,null,null,null,null,null,null,
$item->codprod,$item->un,$item->qt,$item->unitario,$item->subtotal,
$total,null,$desconto,null,null,null,null,null,null,null,null,null,null,null,null,null,1,$data,null,1,0);}}
$arquivo = fopen("$pBling.csv","w");
fputcsv($arquivo, $dados[0]);foreach($dados as $linha){if($linha != $dados[0]){
fputcsv($arquivo, $linha);}}
fclose($arquivo);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='. basename("$pBling.csv"));
header('Content-Length: '. filesize("$pBling.csv"));
ob_get_clean();
readfile("$pBling.csv");
unlink("$pBling.csv");
Pergunta
Frank K Hosaka
Finalmente, consegui montar um arquivo csv no servidor e baixar no notebook.
O meu problema estava no comando readfile("$pBling.csv"), ele baixava o arquivo csv mas também todo o código HTML que fazia parte do contexto do código PHP.
Na base da persistência, encontrei o comando ob_get_clean que "limpa" a área de trabalho e só manda o arquivo csv.
Link para o comentário
Compartilhar em outros sites
1 resposta 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.