Inscrições abertas para nosso Webinar anual Adianti Framework 2024!
Clique aqui para saber mais
Download de múltiplos arquivos carregados com TMultiFile Olá pessoal. Usei o TMultiFile de forma que o usuário possa enviar vários arquivos de uma vez. No banco estou salvando em um campo os caminhos dos arquivos separados por vírgula, ex: imagens/imagem1.jpg,imagens/imagem2.jpg... achei esta a melhor forma de fazer. No entanto, na hora de fazer o download, se for 1 arquivo dá certo, aí o link fica assim: http://localhost/atendimento/download.p...
FT
Download de múltiplos arquivos carregados com TMultiFile  
Olá pessoal. Usei o TMultiFile de forma que o usuário possa enviar vários arquivos de uma vez. No banco estou salvando em um campo os caminhos dos arquivos separados por vírgula, ex: imagens/imagem1.jpg,imagens/imagem2.jpg... achei esta a melhor forma de fazer.

No entanto, na hora de fazer o download, se for 1 arquivo dá certo, aí o link fica assim: localhost/atendimento/download.php?file=images/19942774_140386204300

Mas se for mais de um arquivo, eu não sei como proceder.. do jeito que está fica assim: localhost/atendimento/download.php?file=images/19942774_140386204300,images/bf1e75f8-db40-47a4-a38d-44a69499a25b.jpg

qual a melhor maneira de permitir este download de vários arquivos? existe uma maneira de zipar?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (4)


WP

Particularmente, creio que a maneira errada de salvar o caminho dos arquivos.
eu gosto de salvar 1 arquivo em cada linha na tabela, onde tenho informações dos arquivos tais como , tipo, tamanho, etc.


Mas bem no teu caso, teria que desenvolver uma rotina para ZIPAR os arquivos (sim é possível sim) pequeno exemplo php.net/manual/en/zip.examples.php , na web tem muito mais materia para isso.
Voltando ao assunto de Zipar, com a atual estrutura , vai ter que pegar o conteúdo da linha, fazer um explode php.net/manual/en/function.explode.php fazer um foreach e ir ZIPANDO os arquivos, logo salvar em TMP e iniciar o download.

Espero que tenha dado pra entender

Tag: Zipar, multifiles, arquivos, varios arquivos, download, compactar
FT

Muito obrigado Willian, segui suas sugestões e funcionou perfeito!
Eu tentei usar somente o nome do arquivo para armazenar no campo no banco de dados mas o arquivo.zip dá corrompido sempre que faço isso, devo estar errando algo na programação..
vou quebrar um pouco a cabeça aqui ;)
vlw!
FT

Aqui está o código que usei, caso alguém precise.

  1. <?php
  2.             $zip = new ZipArchive();
  3.             $nomeArquivo "arquivos/arquivo".time().'.zip';
  4.             $zip->open"$nomeArquivoZipArchive::CREATE);
  5.             
  6.             foreach ($data-> filename as $arq)
  7.             {
  8.                 $source_file   'tmp/'.$arq;
  9.                 
  10.                 if (file_exists($source_file))
  11.                 {
  12.                     $zip->addFile(  'tmp/'.$arq "$arq);
  13.                 }
  14.             }
  15.             $zip->close();
  16. ?>
WP

Que bom que deu pra entender, espero que consiga ajustar o codigo. 👍