|
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
<?php
-
// http://www.cyberforum.ru/php-beginners/thread1704308.html
// Не работает скрипт скачивания картинок - PHP
// РАБОТАЕТ ТОЛЬКО ЕСЛИ ФАЙЛ В ДАННОЙ ПАПКЕ НЕ СУЩЕСТВУЕТ!
-
function downloadFile($filename, $mimetype='application/octet-stream') {
if (!file_exists($filename)) die('Файл не найден ' . $filename);
-
$from=$to=0; //$cr=NULL;
-
if (isset($_SERVER['HTTP_RANGE'])) {
$range=substr($_SERVER['HTTP_RANGE'], strpos($_SERVER['HTTP_RANGE'], '=')+1);
$from=strtok($range, '-');
$to=strtok('/'); if ($to>0) $to++;
if ($to) $to-=$from;
header('HTTP/1.1 206 Partial Content');
$cr='Content-Range: bytes ' . $from . '-' . (($to)?($to . '/' . $to+1):filesize($filename));
} else header('HTTP/1.1 200 Ok');
-
$etag=md5($filename);
$etag=substr($etag, 0, 8) . '-' . substr($etag, 8, 7) . '-' . substr($etag, 15, 8);
header('ETag: "' . $etag . '"');
-
header('Accept-Ranges: bytes');
header('Content-Length: ' . (filesize($filename)-$to+$from));
if ($cr) header($cr);
-
header('Connection: close');
header('Content-Type: ' . $mimetype);
header('Last-Modified: ' . gmdate('r', filemtime($filename)));
$f=fopen($filename, 'r');
header('Content-Disposition: attachment; filename="' . basename($filename) . '";');
if ($from) fseek($f, $from, SEEK_SET);
if (!isset($to) or empty($to)) {
$size=filesize($filename)-$from;
} else {
$size=$to;
}
-
$downloaded=0;
-
while(!feof($f) and !connection_status() and ($downloaded<$size)) {
echo fread($f, 512000);
$downloaded+=512000;
flush();
}
fclose($f);
// header("Content-type: text/html; charset=utf-8");
}
// downloadFile($_GET['file']);
// echo "<p>_GET['REQUEST_URI']=". $_SERVER['REQUEST_URI'] ."</p>\n";
-
-
-
-
-
-
if ( isset($_GET['file']) and strlen($_GET['file'])>0 ) { // если запрошено хоть что-то
-
// $need_filename = stripinput(" , П - = + о. fn `/ \ ' " . ' " g >ыЦ юга/. tu< "' );
$need_filename = stripinput($_GET['file']); // сколькос права до слева
// echo "<p>strrpos_filename=". $strrpos_filename ."</p>\n";
// _GET['REQUEST_URI']=/download/kp.txt
// need_filename=9
// $need_filename = str_replace("/","", $need_filename );
-
$need_filename = preg_replace('/[^a-z0-9_\-=+,.]/', '_', $need_filename);
-
-
if (file_exists("files/".$need_filename)) {
// echo "<p>Запрошеный файл «<B>". $need_filename."</B>» существует.</p>\n";
downloadFile("files/".$need_filename);
-
} else {
header("Content-type: text/html; charset=utf-8");
echo "<H2>index.php</H2>\n";
echo "<p style='font-size: 30px; background-color: rgb(255,172,172); color: black; padding: 15px; '>Запрошеный файл <br>
«<B style='color: #006600;'>". $need_filename."</B>» <br>
на сервере НЕ существует.<br>
<br>
Вернитесь на <a href='/' style='color: #0000CC;'>главную страницу</a> </p>\n";
}
-
} // ELSE СПИСОК ФАЙЛОВ
-
// function stripinput FROM core PHP-Fusion
-
?>
|
Добавить комментарий |
Добавить комментарий Пожалуйста, залогиньтесь для добавления комментария.
|
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]
|
|