PageRenderTime 49ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/modeles/media.php

https://github.com/cyprieng/MediaStreamer
PHP | 51 lines | 36 code | 7 blank | 8 comment | 22 complexity | f78e483de80ee2d086c5ba7f4c260e4d MD5 | raw file
  1. <?php
  2. //Fichier de récupération des medias
  3. require_once('../global/init.php');
  4. require_once(ROOT_PATH.MODELE_PATH.'login.php');
  5. require_once(ROOT_PATH.MODELE_PATH.'user.data.php');
  6. require_once(ROOT_PATH.MODELE_PATH.'settings.php');
  7. if(!empty($_GET['u']) && !empty($_GET['p'])){ //Via API
  8. //On vérifit les identifiants
  9. $login = testLogin($_GET['u'], $_GET['p']);
  10. if(!$login){exit('');}
  11. if(!isset($user)){
  12. //On récupère les infos sur l'user
  13. $user = getUserArray();
  14. foreach($user as $key => $us){
  15. if($us['name'] == $_GET['u']){$user = $user[$key];break;}
  16. }
  17. }
  18. //On vérifit qu'on est dans le bon dossier
  19. if(preg_match('/\.\./', $_GET['file']) || (stripos($_GET['file'], $user['music_folder']) === false && stripos($_GET['file'], $user['video_folder']) === false && !preg_match('/https?:\/\//', $_GET['file']))){exit('ok');}
  20. }
  21. else{
  22. mustConnected(); //Sinon on doit être connecté
  23. //On vérifit qu'on est dans le bon dossier
  24. if(preg_match('/\.\./', $_GET['file']) || (stripos($_GET['file'], getMusicPath()) === false && stripos($_GET['file'], getVideoPath()) === false && !preg_match('/https?:\/\//', $_GET['file']))){exit('');}
  25. }
  26. $extension = substr(strrchr($_GET['file'],'.'),1);
  27. //On ajoute le header en fonction de l'extension
  28. if($extension == 'mp3'){
  29. //HEADER MP3
  30. header('Content-Type: audio/mpeg');
  31. header('Content-Disposition: inline;filename="test.mp3"');
  32. if(filesize($_GET['file']) != false){header('Content-length: '.filesize($_GET['file']));}
  33. header('Cache-Control: no-cache');
  34. header("Content-Transfer-Encoding: binary");
  35. }
  36. else if($extension == 'avi'){
  37. //HEADER AVI
  38. header ("Content-type: video/avi");
  39. }
  40. $fp = fopen($_GET['file'],"rb"); //lecture du fichier en binaire
  41. while (!feof($fp)) { //on parcourt toutes les lignes
  42. echo fgets($fp, 4096); // lecture du contenu de la ligne
  43. }
  44. ?>