TMultiFile não carrega extensão "jpeg" Fala galera eu aqui novamente. Em uma tela que estou desenvolvendo seguindo o exemplo CARDS do tutor, me deparei com a seguinte situação. As imagens no formato JPEG não são carregadas na galery. O processo de salvar ocorre normalmente, os arquivos são salvos no caminho informado e etc.. porém quando se clica pra editar as imagens não são carregas. para o campo, foi habil...
F
TMultiFile não carrega extensão "jpeg"  
Fala galera eu aqui novamente.

Em uma tela que estou desenvolvendo seguindo o exemplo CARDS do tutor, me deparei com a seguinte situação. As imagens no formato JPEG não são carregadas na galery. O processo de salvar ocorre normalmente, os arquivos são salvos no caminho informado e etc.. porém quando se clica pra editar as imagens não são carregas.
para o campo, foi habilitado as seguintes extensões:
$imagem->setAllowedExtensions( ['gif', 'png', 'jpg', 'jpeg'] );

Preciso muito disso pois as fotos do WhatsApp são salvas no formato JPEG e para o acesso mobile, esta seria a extensão enviada para o formulário. Em testes realizados com as demais extensões configuradas todas funcionaram, só a JPEG não funciona.

Mais alguém passando por isso ou ja passou?
Conto com o apoio e antecipadamente agradeço.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (6)


NR

No arquivo download.php há um array com as extensões consideradas. Adicione "jpeg".
F

Boa tarde Nataniel,
Primeiramente obrigado por responder.
Abri o arquivo em questão, e vi que a linha JPG recebe
image/jpeg
.. ainda assim dupliquei a linha colocando abaixo da JPG o seguinte trecho de codigo...
$content_type_list['jpeg'] = 'image/jpeg';
porem ainda assim o problema persiste. Tentei limpando o cache do navegador e acessando com uma guia anonima, o problema continua.

Abaixo deixo o codigo do arquivo download.php pra que possa analisar e se possível pontuar onde e o que to fazendo de errado.
Antecipadamente agradeço!

 
  1. <?php
  2. require_once 'init.php';
  3. new TSession;
  4. if (isset($_GET['file']) AND TSession::getValue('logged') )
  5. {
  6. $file = $_GET['file'];
  7. $info = pathinfo($file);
  8. $extension = $info['extension'];
  9. $content_type_list = array();
  10. $content_type_list['txt'] = 'text/plain';
  11. $content_type_list['html'] = 'text/html';
  12. $content_type_list['csv'] = 'text/csv';
  13. $content_type_list['pdf'] = 'application/pdf';
  14. $content_type_list['rtf'] = 'application/rtf';
  15. $content_type_list['doc'] = 'application/msword';
  16. $content_type_list['docx'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
  17. $content_type_list['xls'] = 'application/vnd.ms-excel';
  18. $content_type_list['xlsx'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
  19. $content_type_list['ppt'] = 'application/vnd.ms-powerpoint';
  20. $content_type_list['pptx'] = 'application/vnd.openxmlformats-officedocument.presentationml.presentation';
  21. $content_type_list['odt'] = 'application/vnd.oasis.opendocument.text';
  22. $content_type_list['ods'] = 'application/vnd.oasis.opendocument.spreadsheet';
  23. $content_type_list['jpg'] = 'image/jpeg';
  24. $content_type_list['jpeg'] = 'image/jpeg';
  25. $content_type_list['png'] = 'image/png';
  26. $content_type_list['gif'] = 'image/gif';
  27. $content_type_list['svg'] = 'image/svg+xml';
  28. $content_type_list['xml'] = 'application/xml';
  29. $content_type_list['zip'] = 'application/zip';
  30. $content_type_list['rar'] = 'application/x-rar-compressed';
  31. $content_type_list['bz'] = 'application/x-bzip';
  32. $content_type_list['bz2'] = 'application/x-bzip2';
  33. $content_type_list['tar'] = 'application/x-tar';
  34. if (file_exists($file) AND in_array(strtolower($extension), array_keys($content_type_list)))
  35. {
  36. $basename = basename($file);
  37. $filesize = filesize($file); // get the filesize
  38. header("Pragma: public");
  39. header("Expires: 0"); // set expiration time
  40. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  41. header("Content-type: " . $content_type_list[strtolower($extension)] );
  42. header("Content-Length: {$filesize}");
  43. header("Content-disposition: inline; filename=\"{$basename}\"");
  44. header("Content-Transfer-Encoding: binary");
  45. // a readfile da problemas no internet explorer
  46. // melhor jogar direto o conteudo do arquivo na tela
  47. echo file_get_contents($file);
  48. }
  49. }
  50. </code>
F

Boa tarde Nataniel,
Primeiramente obrigado por responder.
Abri o arquivo em questão, e vi que a linha JPG recebe
image/jpeg
.. ainda assim dupliquei a linha colocando abaixo da JPG o seguinte trecho de codigo...
$content_type_list['jpeg'] = 'image/jpeg';
porem ainda assim o problema persiste. Tentei limpando o cache do navegador e acessando com uma guia anonima, o problema continua.

Abaixo deixo o codigo do arquivo download.php pra que possa analisar e se possível pontuar onde e o que to fazendo de errado.
Antecipadamente agradeço!

 
  1. <?php
  2. require_once 'init.php';
  3. new TSession;
  4. if (isset($_GET['file']) AND TSession::getValue('logged') )
  5. {
  6. $file = $_GET['file'];
  7. $info = pathinfo($file);
  8. $extension = $info['extension'];
  9. $content_type_list = array();
  10. $content_type_list['txt'] = 'text/plain';
  11. $content_type_list['html'] = 'text/html';
  12. $content_type_list['csv'] = 'text/csv';
  13. $content_type_list['pdf'] = 'application/pdf';
  14. $content_type_list['rtf'] = 'application/rtf';
  15. $content_type_list['doc'] = 'application/msword';
  16. $content_type_list['docx'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
  17. $content_type_list['xls'] = 'application/vnd.ms-excel';
  18. $content_type_list['xlsx'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
  19. $content_type_list['ppt'] = 'application/vnd.ms-powerpoint';
  20. $content_type_list['pptx'] = 'application/vnd.openxmlformats-officedocument.presentationml.presentation';
  21. $content_type_list['odt'] = 'application/vnd.oasis.opendocument.text';
  22. $content_type_list['ods'] = 'application/vnd.oasis.opendocument.spreadsheet';
  23. $content_type_list['jpg'] = 'image/jpeg';
  24. $content_type_list['jpeg'] = 'image/jpeg';
  25. $content_type_list['png'] = 'image/png';
  26. $content_type_list['gif'] = 'image/gif';
  27. $content_type_list['svg'] = 'image/svg+xml';
  28. $content_type_list['xml'] = 'application/xml';
  29. $content_type_list['zip'] = 'application/zip';
  30. $content_type_list['rar'] = 'application/x-rar-compressed';
  31. $content_type_list['bz'] = 'application/x-bzip';
  32. $content_type_list['bz2'] = 'application/x-bzip2';
  33. $content_type_list['tar'] = 'application/x-tar';
  34. if (file_exists($file) AND in_array(strtolower($extension), array_keys($content_type_list)))
  35. {
  36. $basename = basename($file);
  37. $filesize = filesize($file); // get the filesize
  38. header("Pragma: public");
  39. header("Expires: 0"); // set expiration time
  40. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  41. header("Content-type: " . $content_type_list[strtolower($extension)] );
  42. header("Content-Length: {$filesize}");
  43. header("Content-disposition: inline; filename=\"{$basename}\"");
  44. header("Content-Transfer-Encoding: binary");
  45. // a readfile da problemas no internet explorer
  46. // melhor jogar direto o conteudo do arquivo na tela
  47. echo file_get_contents($file);
  48. }
  49. }
  50. </code>
NR

Pelo que vi tem algumas restrições também no javascript. Acredito que seja mais fácil tratar isso na entrada dos arquivos, fazendo a substituição de "jpeg" para "jpg".
F

Entendo e agradeço o apoio, mas a substituição da extensão por um usuário(leigo) não vai rolar.. é justamente o que eu preciso evitar, ja que eles poderão usar as imagens baixadas do whatsapp web pra subir pro sistema em questão. E dependendo da quantidade de imagens, fica enviável.

Estas restrições no js, tem como contornar?
NR

A substituição seria feita internamente pelo sistema e não pelos usuários. Veja a classe AdiantiUploaderService.