У кого есть пример докачкы

Печать RSS
196

Автор
Дух
0
Как организовать отдачу файла с докачкой?
Автор
Дух
0
Тоисть хочу узнать как работает чтобы ешё организовать импорт сибе на сервер с докачкой ато оперативкы 50mb а фильм 700mb

Транклюкаторщик
0
Докачка должна поддерживаться веб сервером. Скриптом её не сделать. Обращайся в свою хостинг компанию
Автор
Дух
0
3, Открою тибе маленькой сокрет ты не прав. Поддерживается я знаю ето на все 100%

Господин ПЖ
0
где-то был у меня скрипт, не могу найти, помню что там проверяется поддерживает ли браузер докачку RANGE и сам скрипт

ツ ツ ツ
0
<?php
function db_file($fname, $name, $mimetype = 'application/octet-stream')
{
    if (!file_exists($fname)) die('Файл не найден');
$fsize=filesize($fname);
$fdown= $fname;
// Установлена или нет переменная HTTP_RANGE
if (getenv('HTTP_RANGE')=="") {
  // Читать и отдавать файл от самого начала
  $f=fopen($fdown, 'r');
  header("HTTP/1.1 200 OK");
  header("Connection: close");
  header("Content-Type: ".$mimetype."");
  header("Accept-Ranges: bytes");
  header("Content-Disposition: Attachment; filename=".$name);
  header("Content-Length: ".$fsize);
  while (!feof($f)) {
    if (connection_aborted()) {
      fclose($f);
      break;
    }
    echo fread($f, 512000);
    sleep(1);
  }
  fclose($f);
}
else {
  // Получить значение переменной HTTP_RANGE
  preg_match ("/bytes=(\d+)-/", getenv('HTTP_RANGE'), $m);
  $csize=$fsize-$m[1];  // Размер фрагмента
  $p1=$fsize-$csize;    // Позиция, с которой начинать чтение файла
  $p2=$fsize-1;         // Конец фрагмента
  // Установить позицию чтения в файле
  $f=fopen($fdown, 'r');
  fseek ($f, $p1);
  header("HTTP/1.1 206 Partial Content");
  header("Connection: close");
  header("Content-Type: ".$mimetype."");
  header("Accept-Ranges: bytes");
  header("Content-Disposition: Attachment; filename=".$name);
  header("Content-Range: bytes ".$p1."-".$p2."/".$fsize);
  header("Content-Length: ".$csize);
  while (!feof($f)) {
    if (connection_aborted()) {
      fclose($f);
      break;
    }
    echo fread($f, 512000);
    sleep(1);
  }
  fclose($f);
}}
Изменил: Lugaro (27.12.2009 / 22:21)

ВЕЛИКИЙ и УЖАСНЫЙ!
0
Автор
Дух
0
Спасибо щас буду куралесить

Транклюкаторщик
0
Ну даже если я не прав, что такого скрипта не существует, но зачем занимать php на такую элементарнейшую вещь, как скачивание файла?
Автор
Дух
0
Я отвечю тибе:
1) Если файлы лежат в базе,
2) Если надо проследить за популярностю файла.
3) Если файл разрешается скачивать с ограниченным доступом.
4) Если надо проследить чтобы не накручивали рейтинг.
И ещё много преимушеств.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск