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

Php- Download de arquivos e documentos ficam corrompidos pela aplicação


danillo.sdd

Pergunta

Ao forçar um download de arquivo ou documento na minha aplicação, o mesmo baixa, mais ao abrir está corrompido.

 

//DOWNLOAD DO ARQUIVO

$arquivo   = 'C:/teste/arquivo.zip';

header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=" . basename($arquivo));
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Length: " . filesize($arquivo));

readfile($arquivo);

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Tente assim:
 

<?php

...
  
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream;");
header("Content-Length:" . filesize($arquivo));
header("Content-disposition: attachment; filename=" . $arquivo);
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile($arquivo);
flush();

 

Link para o comentário
Compartilhar em outros sites

  • 0

Eu coloquei assim:

$arquivo = "C:/teste/arquivo.zip";

header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream;");
header("Content-Length:" . filesize($arquivo));
header("Content-disposition: attachment; filename=" . $arquivo);
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile($arquivo);
flush();

Baixou, mais ao abrir o zip, acusa como corrompido

Link para o comentário
Compartilhar em outros sites

  • 0

Teste a legibilidade do arquivo assim:

error_reporting(E_ALL);

$arquivo = "C:/teste/arquivo.zip";

if(is_readable($arquivo)){
} else {
die('<p>$arquivo não pode ser lido, chefe!</p>');
}
Editado por lowys
Link para o comentário
Compartilhar em outros sites

  • 0
error_reporting(E_ALL);

$arquivo = "C:/teste/arquivo.zip";

if(is_readable($arquivo)){
die('<p>lido com sucesso</p>');

} else {
die('<p>arquivo não pode ser lido, chefe!</p>');
}

Fiz assim e acusou como lido com sucesso

Quando vi que o txt baixado ficou com um <! dentro... pesquisei e eu acho que algo sobre utf-o sem BOM.. parece..

Fiz assim:

ini_set ("display_errors",  "1"); 
    error_reporting (E_ALL);
    $arquivo = $_GET["C:/teste/1.txt"];
      $tipo="application/txt"; 
         
      header("Content-Type: ".$tipo);
      header("Content-Length: ".filesize($arquivo));
      header("Content-Disposition: attachment; filename=".basename($arquivo));
      readfile($arquivo);
      exit;

E apresentou esta mensagem:

 

Atenção
Undefined index: C:/teste/1.txt
Atenção
readfile(): Filename cannot be empty
Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...