Авторизация
 Регистрация   Войти   Забыли пароль? 

Функция загрузки файла по имени без докачки

Обновлённый PHP-Fusion Bogatyr / Free CMS PHP-Fusion 7 Bogatyr / PHP-functions for files upload and download / Функция загрузки файла по имени без докачки


 Russian

Function of downloading a file by name without restarting

Обновлённый PHP-Fusion Bogatyr / Free CMS PHP-Fusion 7 Bogatyr / PHP-functions for files upload and download / Function of downloading a file by name without restarting


 English

PHP

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in F:\OpenServer\domains\php-fusion.vveb.ws\includes\bbcodes\mail_bbcode_include.php on line 20

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in F:\OpenServer\domains\php-fusion.vveb.ws\includes\bbcodes\mail_bbcode_include.php on line 21

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in F:\OpenServer\domains\php-fusion.vveb.ws\includes\bbcodes\search_bbcode_include.php on line 39
PHP
  1. <?php
  2. // http://www.cyberforum.ru/php-beginners/thread1704308.html   
  3. // Не работает скрипт скачивания картинок - PHP
  4. // РАБОТАЕТ ТОЛЬКО ЕСЛИ ФАЙЛ В ДАННОЙ ПАПКЕ НЕ СУЩЕСТВУЕТ!
  5. function downloadFile($filename, $mimetype='application/octet-stream') {
  6.     if (!file_exists($filename)) die('Файл не найден ' . $filename);
  7.     $from=$to=0; //$cr=NULL;
  8.     if (isset($_SERVER['HTTP_RANGE'])) {
  9.         $range=substr($_SERVER['HTTP_RANGE'], strpos($_SERVER['HTTP_RANGE'], '=')+1);
  10.         $from=strtok($range, '-');
  11.         $to=strtok('/'); if ($to>0) $to++;
  12.         if ($to) $to-=$from;
  13.         header('HTTP/1.1 206 Partial Content');
  14.         $cr='Content-Range: bytes ' . $from . '-' . (($to)?($to . '/' . $to+1):filesize($filename));
  15.     } else  header('HTTP/1.1 200 Ok');
  16.     $etag=md5($filename);
  17.     $etag=substr($etag, 0, 8) . '-' . substr($etag, 8, 7) . '-' . substr($etag, 15, 8);
  18.     header('ETag: "' . $etag . '"');
  19.     header('Accept-Ranges: bytes');
  20.     header('Content-Length: ' . (filesize($filename)-$to+$from));
  21.     if ($cr) header($cr);
  22.     header('Connection: close');
  23.     header('Content-Type: ' . $mimetype);
  24.     header('Last-Modified: ' . gmdate('r', filemtime($filename)));
  25.     $f=fopen($filename, 'r');
  26.     header('Content-Disposition: attachment; filename="' . basename($filename) . '";');
  27.     if ($from) fseek($f, $from, SEEK_SET);
  28.     if (!isset($to) or empty($to)) {
  29.         $size=filesize($filename)-$from;
  30.     } else {
  31.         $size=$to;
  32.     }
  33.     $downloaded=0;
  34.     while(!feof($f) and !connection_status() and ($downloaded<$size)) {
  35.         echo fread($f, 512000);
  36.         $downloaded+=512000;
  37.         flush();
  38.     }
  39.     fclose($f);
  40.      // header("Content-type: text/html; charset=utf-8");
  41. }
  42. // downloadFile($_GET['file']);
  43. // echo "<p>_GET['REQUEST_URI']=". $_SERVER['REQUEST_URI'] ."</p>\n";
  44. if ( isset($_GET['file'])  and strlen($_GET['file'])>0 ) { // если запрошено хоть что-то
  45.      // $need_filename = stripinput(" , П - = + о. fn  `/ \ ' " . ' " g >ыЦ юга/. tu< "' );
  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=9
  50.      // $need_filename = str_replace("/","", $need_filename );
  51.     $need_filename = preg_replace('/[^a-z0-9_\-=+,.]/', '_', $need_filename);
  52.     if (file_exists("files/".$need_filename)) {
  53.          //        echo "<p>Запрошеный файл &laquo;<B>". $need_filename."</B>&raquo; существует.</p>\n";
  54.         downloadFile("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. // function stripinput FROM core PHP-Fusion
  66. ?>
Добавить комментарий

Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
HTML-code and BB-code for blogs and forums

<a href="https://php-fusion.vveb.ws/php-fusion.php?id=53">Функция загрузки файла по имени без докачки</a>


[url=https://php-fusion.vveb.ws/php-fusion.php?id=53]Функция загрузки файла по имени без докачки[/url]

Language: Default
 
Код для PHP-Fusion