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

Forçar Download...


ESerra

Pergunta

Alguém já teve problemas na hora de forçar o download???

Achei uma solução pronta, que deveria funcionar:

switch( $file_extension )
{
  case "pdf": $ctype="application/pdf"; break;
  case "exe": $ctype="application/octet-stream"; break;
  case "zip": $ctype="application/zip"; break;
  case "doc": $ctype="application/msword"; break;
  case "xls": $ctype="application/vnd.ms-excel"; break;
  case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  case "gif": $ctype="image/gif"; break;
  case "png": $ctype="image/png"; break;
  case "jpeg":
  case "jpg": $ctype="image/jpg"; break;
  case "mp3": $ctype="audio/mpeg"; break;
  default: $ctype="application/force-download";
}

header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers 
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".$nome_arquivo."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");

Ela funciona perfeitamente, mas docs do MS Office (Word e Excel foram testados), simplesmente o arquivo que vem parece que tem pau na codificação, pois os caracteres ficam estranhos... Arquivos MP3, JPEG, TXT, PDF, funcionaram sem problemas... já tentei forçar charset e tudo mais, mas realmente quando se trata de .DOC e .XLS, simplesmente dá pau no arquivo vindo...

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Realmente não mudou... o pior é que agora eu vi que o pau dá em arquivos que podem ser manipulados... porque estava pensando em zipar determinados arquivos na hora do envio e depois baixar o arquivo zipado... mas o zip vem corrompido... que coisa chata =(.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, estou tendo o mesmo problema...

só consigo baixar corretamente os arquivos TXT e PDF..

XLS, DOC, JPG, ZIP(contendo arquivos DOC, XLS) não funcionam..

tentei de tudo, e com diversos headers diferentes..

$file = $_GET['file']; // pega o endereço do arquivo

header("Content-Type: application/save");

header("Content-Length:".filesize($file));

header('Content-Disposition: attachment; filename=\"' . basename($file) . '\"');

header("Content-Transfer-Encoding: binary");

header("Cache-Control: no-cache, must-revalidate");

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

//header('Expires: 0');

header('Pragma: no-cache');

/* ORIGINALMENTE EU USAVA ISTO

$fp = fopen("$file", "r"); //abre com atributo read-only

fpassthru($fp);

fclose($fp);

*/

readfile($file);

Alguém já achou a solucao?

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