Зашифровать ссылку на файл и отдать её юзеру

FedY@

Новичок
Зашифровать ссылку на файл и отдать её юзеру

Зашифровать ссылку на файл и отдать её юзеру

попробывал вот так:
PHP:
<?php
$filelocation = "ftp://fileserver/Film3/TheButterflyEffect2(DVD)(rus)1of1.avi";
header('Date: ' . date("D M j G:i:s T Y"));
header('Last-Modified: ' . date("D M j G:i:s T Y"));
header('Content-Description: File Transfer');
header("Content-Type: application/force-download");
//header("Content-Lenght: " . (string)(filesize($filelocation)));
header("Content-Transfer-Encoding: Binary");
header("Content-Disposition: attachment; filename=".str_replace(" ", "", basename($filelocation))."");
@readfile($filelocation);
?>
а он мне просто бинарный код выводит в браузер, а не отдает как файл.. ! что это? Content-Type: application/force-download не тот ?

и еще один вопрос, файл будет c fileserver'a на веб-сервер потом отдаватся Юзеру?

-~{}~ 23.12.06 13:44:

кстате, задача вообще заключаетсо в том чтоб зашифровать ссылку на файл... тоесть чтоб юзер не видел где лежит файл!
 

FedY@

Новичок
Автор оригинала: Invizz
1) octet-stream

2) нет, юзер редиректнется туда
спасибо, работает - поставил header("Content-Type: application/octet-stream");

кстате, а как сделать так чтобы была докачка?

-~{}~ 23.12.06 14:14:

мой Download Master пишет докачка не поддерживаетсо=(
 

zerkms

TDD infected
Команда форума
FedY@
посмотри как там сделано и реализуй у себя, что непонятного то
 

WP

^_^
Моя функция отправки файла на скачивание. Поддерживает докачку.
PHP:
function send_file_to_download($path,$name = NULL)
{
 $fp = fopen($path,'rb');
 if (!$fp) {return FALSE;}
 ob_end_clean();
 ob_implicit_flush(1);
 $s = $size = filesize($path);
 $start = 0;
 if (isset($_SERVER['HTTP_RANGE']))
 {
  header('HTTP/1.1 206 Partial Content');
  preg_match('~^bytes=(\d+)?\-(\d+)?$~',$_SERVER['HTTP_RANGE'],$m);
  if (isset($m[1])) {$start = $m[1]; fseek($fp,$m[1]); $s -= $m[1];}
  if (isset($m[2])) {$s -= $m[2];}
 }
 header('Content-Disposition: attachment; filename='.($name !== NULL?$name:basename($path)));
 header('Last-Modified: '.date('D, d M Y H:i:s T',filemtime($path)));
 header('Accept-Ranges: bytes');
 header('Content-Length: '.$s);
 header('Content-Range: bytes '.$start.'-'.$s.'/'.$size);
 header('Content-type: application/octet-stream');
 $g = 0;
 while (!feof($fp) and $fp)
 {
  $buf = fread($fp,4096);
  $g += strlen($buf);
  if ($g > $s) {$v = $g-$s; echo substr($buf,0,-1*$v); break;}
  else {echo $buf;}
 }
}
 

FedY@

Новичок
спасибо сейчас попробуем... потому что моя функция как-то не правельно качает файлы:(
 

SiMM

Новичок
> моя функция как-то не правельно качает файлы
Твоя функция вообще не качает файлы. Потому что она предназначена для отдачи файлов, а не их скачки. Когда ж вещи-то своими именами начнёте называть?
 

FedY@

Новичок
Автор оригинала: SiMM
> моя функция как-то не правельно качает файлы
Твоя функция вообще не качает файлы. Потому что она предназначена для отдачи файлов, а не их скачки. Когда ж вещи-то своими именами начнёте называть?
я не про то что вверху было написано... а про ту функцию которую нашёл и переделал...=)ыыыы

-~{}~ 09.01.07 21:12:

функция не подходит... идёт большая нагрузка на веб-сервер и забивается канал!

Как можно зашифровать ссылку и дать её юзеру чтоб он качал по ней но не видел где лежит файл?!
 

phprus

Moderator
Команда форума
FedY@
Можно создавать временные правила для mod_rewrite. Тогда пользователь не увидит реального местоположения файла, а отдачей файла будет заниматься apache.

и забивается канал!
А что ты хотел? Файл то не по воздуху передается.
 

FedY@

Новичок
всеравно нагружен будет веб-сервер, а не фтп-сервер... верно?
 

Фанат

oncle terrible
Команда форума
вот этим и отличается дурак от умного. умный понимает, а дурак понять не может, и поэтому ждёт подтверждений.

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

FedY@

Новичок
Автор оригинала: Фанат
вот этим и отличается дурак от умного. умный понимает, а дурак понять не может, и поэтому ждёт подтверждений.

при том, что и без всех этих "убедиться" твоя идея перенаправлять юзера на другой сервер и при этом скрывать ссылку на него - это я не знаю, чем надо думать, чтобы додуматься.
спасибо тебе Фанат... я просто не первый раз читаю и вижу твои посты и ответы, если человеку интересно можно ли сделать так,а не так как все... это караетсо законом?

ТЕМА МОЖЕТ БЫТЬ ЗАКРЫТА
 

WP

^_^
> чем надо думать, чтобы додуматься.
И рыбку сьесть, и на... :)

> а не так как все... это караетсо законом?
Все остальные же не дураки. Если бы был возможен лучший вариант, все бы использовали именно его. Хотя тут он невозможен по смыслу.
Я бы сделал через временные RewriteRule'сы.
 

Фанат

oncle terrible
Команда форума
WP
что бы ты сделал через временные RewriteRule'сы? отдачу файлов с FTP?!
 
Сверху