audiopost.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. //file_put_contents("result.txt", print_r($_POST, true));
  3. //file_put_contents("result3.txt", print_r($_FILES, true));
  4. //file_put_contents("result2.txt", print_r($_GET, true));
  5. require('../inc/global.inc.php');
  6. // check the request comes from our red5 server
  7. $ips = gethostbynamel(api_get_setting('service_visio','visio_host'));
  8. $is_our_server = false;
  9. // ignoring null file
  10. if ($_FILES["file"]["size"] == 0)
  11. exit(0);
  12. if(is_array($ips))
  13. {
  14. foreach($ips as $ip)
  15. {
  16. //get 255 range for known server address
  17. $split = split('.',$ip);
  18. $ip_range_server = $split[0].'.'.$split[1].'.'.$split[2];
  19. //get 255 range for request source address
  20. $split = split('.',$_SERVER['REMOTE_ADDR']);
  21. $ip_range_request = $split[0].'.'.$split[1].'.'.$split[2];
  22. if($ip_range_server == $ip_range_request){$is_our_server = true;}
  23. }
  24. }
  25. if($is_our_server)
  26. {
  27. if(api_get_setting('service_visio','active')=='true')
  28. {
  29. //check encryption key
  30. $string1 = $_GET['course_code'].$_GET['user_id'].gmdate('Ymd').$_configuration['security_key'];
  31. $string2 = $_GET['course_code'].$_GET['user_id'].(gmdate('Ymd')-1).$_configuration['security_key'];
  32. if(md5($string1) == $_GET['checker'] or md5($string2) == $_GET['checker'])
  33. {
  34. $course_info = api_get_course_info($_GET['course_code']);
  35. $target = api_get_path(SYS_COURSE_PATH).$course_info['path'].'/document/audio/';
  36. $basename = basename( $_FILES['file']['name']);
  37. $target = $target . $basename ;
  38. if(!move_uploaded_file($_FILES['file']['tmp_name'], $target))
  39. {
  40. error_log(__FILE__.':'.__LINE__.': File upload to '.$target.' failed',0);
  41. }
  42. else
  43. {
  44. require_once(api_get_path(LIBRARY_PATH).'fileUpload.lib.php');
  45. $id = add_document($course_info,'/audio/'.$basename,'file',filesize($target),$basename);
  46. if($id !== false)
  47. {
  48. $res = api_item_property_update($course_info,TOOL_DOCUMENT,$id,'DocumentAdded',$_GET['user_id']);
  49. if($res === false)
  50. {
  51. error_log(__FILE__.':'.__LINE__.': Something went wrong with item properties update of '.$target,0);
  52. }
  53. else
  54. {//make sound invisible?
  55. //$res = api_item_property_update($course_info,TOOL_DOCUMENT,$id,'invisible',$_GET['user_id']);
  56. }
  57. }
  58. else
  59. {
  60. error_log(__FILE__.':'.__LINE__.': Could not create document record for document '.$target,0);
  61. }
  62. }
  63. }
  64. else
  65. {
  66. error_log(__FILE__.':'.__LINE__.': Attempting to save file but hash check did not suceed (hacking attempt?)',0);
  67. }
  68. }
  69. else
  70. {
  71. error_log(__FILE__.':'.__LINE__.': Attempting to save file but videoconf is not enabled',0);
  72. }
  73. }
  74. else
  75. {
  76. error_log(__FILE__.':'.__LINE__.': Attempting to save file but coming from unknown source',0);
  77. }
  78. ?>