PHP-Функция загрузки файла по имени с докачкой
  PHP-Function of downloading a file by name with a resume

  Vveb.ws / PHP-Fusion / PHP-функции / uploads /    PHP-Функция загрузки файла по имени с докачкой

PHP
  1. <?php
  2. // http://www.cyberforum.ru/php-beginners/thread1704308.html   
  3. // Не работает скрипт скачивания картинок - PHP
  4. function download_image_file($flnm) {
  5.      // $flnm = "files/gifk-53.gif";
  6.      // $flnm = $_SERVER["QUERY_STRING"];
  7.     if(ini_get("zlib.output_compression")) ini_set("zlib.output_compression", "Off");
  8.     $flxt = strtolower(substr(strrchr($flnm, "."), 1));
  9.      // echo "<p>flxt=". $flxt ."</p>\n";
  10.      // if(($flnm=="")||(!file_exists($flnm))){
  11.      //         echo "Ошибка <i>".$flnm."</i> не найден файл."; exit;
  12.      // }
  13. switch($flxt)
  14. {
  15.     case 'gif':
  16.         $tpe = 'image/gif';
  17.     break;
  18.     
  19.     case 'png':
  20.         $tpe = 'image/png';
  21.     break;
  22.     
  23.     case 'jpg':
  24.         $tpe = 'image/jpg';
  25.     break;
  26.     
  27.     default:
  28.         $tpe = 'application/force-download';
  29. }
  30. // echo "<p>tpe=". $tpe ."</p>\n";
  31. // Запрошеный файл «gifk-53.gif» существует.
  32. // flxt=gif
  33. // tpe=image/gif
  34. header("Pragma: public");
  35. header("Expires: 0");
  36. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  37. header("Cache-Control: private", false);
  38. header("Content-Type: ".$tpe);
  39. header("Content-Disposition: attachment; filename="".basename($flnm)."";");
  40. header("Content-Transfer-Encoding: binary");
  41. header("Content-Length: ".filesize($flnm));
  42. readfile("$flnm");
  43. exit();
  44. }
  45. if ( isset($_GET['file'])  and strlen($_GET['file'])>0 ) { // если запрошено хоть что-то
  46.     $need_filename = stripinput($_GET['file']); // сколькос права до слева
  47.      // echo "<p>strrpos_filename=". $strrpos_filename ."</p>\n";
  48.      // _GET['REQUEST_URI']=/download/kp.txt
  49.      // $need_filename = str_replace("/","", $need_filename );
  50.     $need_filename = preg_replace('/[^a-z0-9_\-=+,.]/', '_', $need_filename);
  51.     if (file_exists("files/".$need_filename)) {
  52.          //        echo "<p>Запрошеный файл &laquo;<B>". $need_filename."</B>&raquo; существует.</p>\n";
  53.          // $flnm = "files/".$need_filename;
  54.         download_image_file("files/".$need_filename);
  55.     } else {
  56.         header("Content-type: text/html; charset=utf-8");
  57. echo "<H2>index.php</H2>\n";
  58. echo "<p style='font-size: 30px; background-color: rgb(255,172,172); color: black; padding: 15px; '>Запрошеный файл <br>
  59. &laquo;<B style='color: #006600;'>". $need_filename."</B>&raquo; <br>
  60. на сервере НЕ существует.<br>
  61. <br>
  62. Вернитесь на <a href='/' style='color: #0000CC;'>главную страницу</a> </p>\n";
  63.     }
  64. } // ELSE СПИСОК ФАЙЛОВ
  65. if (!function_exists("stripinput")) {
  66. // Strip Input Function, prevents HTML in unwanted places
  67. function stripinput($text) {
  68.     if (QUOTES_GPC) $text = stripslashes($text);
  69.     $search = array("&", """, "'", "", '"', "'", "<", ">", "&nbsp;");
  70.     $replace = array("&amp;", "&quot;", "&#39;", "&#92;", "&quot;", "&#39;", "&lt;", "&gt;", " ");
  71.     $text = str_replace($search, $replace, $text);
  72.     return $text;
  73. }
  74. }
  75. ?>

uploads
 

 Функция загрузки файла по имени без докачки
 Function of downloading a file by name without restarting

 Проблемы с фотоальбомами и отображением картинок Problems with photo albums and image display  

 Проблемы с фотоальбомами и отображением картинок
 Problems with photo albums and image display

func_translite_my_4 Заменяет русские буквы на английские, пробелы на знак подчёркивания. Для загрузки файлов Replaces Russian letters to English, spaces to underscore. For uploading files  

  func_translite_my_4
 Заменяет русские буквы на английские, пробелы на знак подчёркивания. Для загрузки файлов
 Replaces Russian letters to English, spaces to underscore. For uploading files

file_name_ext Функция определяет имя и расширение файла Function defines the name and the file extension  

  file_name_ext
 Функция определяет имя и расширение файла
 Function defines the name and the file extension