PageRenderTime 39ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/vendor/ckeditor/plugins/_inactive/cyberim/includes/tasks/download_file.php

https://bitbucket.org/seyar/ari100krat.local
PHP | 48 lines | 36 code | 5 blank | 7 comment | 3 complexity | 5d945b75a861d3d4910dab29514ef38f MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.1
  1. <?php
  2. /*
  3. Защита от прямой загрузки
  4. */
  5. defined('ACCESS') or die();
  6. $file = FileManager::clear_path(
  7. Manager::$conf['filesystem.files_abs_path'].DS.$_REQUEST['file']
  8. );
  9. if (file_exists(FileManager::convertToFileSystem($file))){
  10. Manager::$conf['stream.mimes']['use_gzip']=false;
  11. //заружаем файл
  12. $data = file_get_contents(FileManager::convertToFileSystem($file));
  13. //получаем расширение файла
  14. $ext = strtolower(FileManager::get_ext($file));
  15. // Устанавливаем mime поумолчанию если не можем найти тип этого фала
  16. if (!isset(Manager::$conf['stream.mimes'][$ext])){
  17. $mime = 'application/octet-stream';
  18. }
  19. else{
  20. $mime = (is_array(Manager::$conf['stream.mimes'][$ext])) ?
  21. Manager::$conf['stream.mimes'][$ext][0] :
  22. Manager::$conf['stream.mimes'][$ext];
  23. }
  24. // Генирируем заголовки сервера
  25. if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")){
  26. header('Content-Type: "'.$mime.'"');
  27. header('Content-Disposition: attachment; filename="'.basename($file).'"');
  28. header('Expires: 0');
  29. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  30. header("Content-Transfer-Encoding: binary");
  31. header('Pragma: public');
  32. header("Content-Length: ".strlen($data));
  33. }else{
  34. header('Content-Type: "'.$mime.'"');
  35. header('Content-Disposition: attachment; filename="'.basename($file).'"');
  36. header("Content-Transfer-Encoding: binary");
  37. header('Expires: 0');
  38. header('Pragma: no-cache');
  39. header("Content-Length: ".strlen($data));
  40. }
  41. echo $data;
  42. }
  43. ?>