ФорумПрограммированиеPHP для идиотов → антилич

антилич

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 6 августа 2009 г. 9:51

    Пишу что то вроде антилича

    header('Content-type: application/zip');
    header('Content-Disposition: attachment; filename="file.zip"');
    header("Content-Length: 1600000");
    readfile('film.zip');

    на выходе file.zip, докачка файла не работает, выдает ошибку. есть какиенибудь варианты? суть в том чтобы даже через http headers пользователь не мог узнать прямую ссылку на исходный файл
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 6 августа 2009 г. 9:58, спустя 7 минут 6 секунд


    Пишу что то вроде антилича

    header('Content-type: application/zip');
    header('Content-Disposition: attachment; filename="file.zip"');
    header("Content-Length: 1600000");
    readfile('film.zip');

    на выходе file.zip, докачка файла не работает, выдает ошибку. есть какиенибудь варианты? суть в том чтобы даже через http headers пользователь не мог узнать прямую ссылку на исходный файл
    Ну как вариант можно передавать через цикл определенное кол-во ьайт в секунду, еси прекратилась передача то запоминать за этим юзверем кол-во переданных уже байт затем если хочет докачать просто начинать отдавать оставшееся )
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 6 августа 2009 г. 10:17, спустя 18 минут 35 секунд

    дудова система позволяет докачку делать скрывая ссылку на файл
    юзай симлинки
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 6 августа 2009 г. 10:18, спустя 1 минуту 3 секунды


    дудова система позволяет докачку делать скрывая ссылку на файл
    юзай симлинки
    Это что за система ? Оо Поделись )
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 6 августа 2009 г. 10:37, спустя 18 минут 52 секунды

    симлинк по виндой вроде не работает?
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 6 августа 2009 г. 10:49, спустя 12 минут 7 секунд


    симлинк по виндой вроде не работает?
    нет
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 6 августа 2009 г. 10:56, спустя 7 минут 33 секунды

    тогда не вариант) ладно, сам чтонить придумаю
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 6 августа 2009 г. 18:53, спустя 7 часов 56 минут 45 секунд


    тогда не вариант) ладно, сам чтонить придумаю
    попробуй. и начни читать с азов хттп протокола.

    а дудова хуйня - 1dfile.ru
    Сапожник без сапог
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 9 августа 2009 г. 18:18, спустя 2 дня 23 часа 24 минуты

    $filename = time().'.'.$type; 

    // получаем размер файла
    $fsize = filesize($url);
    // дата модификации файла для кеширования
    $ftime = date( 'D, d M Y H:i:s T', filemtime($url) );
    // смещение от начала файла
    $range = 0;

    // пробуем открыть
    $handle = @fopen($url, 'rb' );

    // если не удалось
    if( !$handle ){
    header ( 'HTTP/1.1 404 Not Found' );
    die();
    }

    // если запрашивающий агент поддерживает докачку
    if( $_SERVER['HTTP_RANGE'] ) {
    $range = $_SERVER['HTTP_RANGE'];
    $range = str_replace( 'bytes=', '', $range );
    $range = str_replace( '-', '', $range );
    // смещаемся по файлу на нужное смещение
    if ( $range ) fseek( $handle, $range );
    }

    // если есть смещение
    if( $range ) {
    header( 'HTTP/1.1 206 Partial Content' );
    } else {
    header( 'HTTP/1.1 200 OK' );
    }

    header( 'Content-Disposition: attachment; filename="film.avi"' );
    header( 'Last-Modified: '.$ftime );
    header( 'Content-Length: '.($fsize-$range) );
    header( 'Accept-Ranges: bytes' );
    header( 'Content-Range: bytes '.$range.'-'.($fsize - 1).'/'.$fsize );

    header( 'Content-Type: '.$mimetype );

    readfile($url);

    fclose($handle);


    ахаха) 1.5 ГБ чет не потянуло)
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 9 августа 2009 г. 18:33, спустя 14 минут 53 секунды

    ещеб ))) Чтоб потянуло тебе надо оперативки 2 Гб иметь и в пхп.ини покапаться увеличить размер макс используемой памяти =) А вообще для антилича самое хорошее это symlink
    Спустя 145 сек.
    оооо охуенно !!!
    5.3.0 This function is now available on Windows platforms (Vista, Server 2008 or greater).
    Только блять висту нехочу ставить =( надо на ХР попробывать…
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 9 августа 2009 г. 18:35, спустя 2 минуты 44 секунды

    я же говорю не могу я под symlink работать)
    Спустя 146 сек.
    c mod_rewrite возможно можно сделать. все спать, голова опухла
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 10 августа 2009 г. 5:13, спустя 10 часов 28 минут

    я с нгинксом ебался на эту тему)) не донастроил не успел
    Сапожник без сапог
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 10 августа 2009 г. 5:22, спустя 9 минут 2 секунды

    книженция хорошая http://www.kitab.rabita.az/files/web-serverApache.pdf
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 10 августа 2009 г. 16:41, спустя 11 часов 19 минут 50 секунд

    обошелся без симлинков и реврайта. Все равно даже при Download Helper'e, просмотре заголовков ссылку на исходный файл не обнаруживает.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!