Автор Тема: PHP и скачивание файлов с FTP  (Прочитано 22289 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
PHP и скачивание файлов с FTP
« Ответ #45 : 16 Августа 2002, 00:40:40 »
Люди вопрос на засыпку! А с помощью mod_rewrite эту проблему не решеть? Вот идея: все запросы к файлам в папке /files, будут переписываться на ftp сервер.
Пример:
Было - site.ru/files/music.mp3
Стало - frp://логин::пароль@ftp_site.ru/music.mp3

По идеи всё нормально будет(не проверял), но наверное в качалке юзера "пролезет" настоящее имя файла. Если я не прав поправьте :)
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
PHP и скачивание файлов с FTP
« Ответ #46 : 16 Августа 2002, 00:45:29 »
Tronyx
Цитировать
frp://логин::пароль@ftp_site.ru/music.mp3
так логин и пароль будут открытыми.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Helios

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.moderntalking.org
PHP и скачивание файлов с FTP
« Ответ #47 : 16 Августа 2002, 00:51:18 »
ThE0ReTiC
Что такое "RFC архивы"?

Доктор
Да, с именем получилось:
header("Content-Type: $content_type;name=$filename");
header("Content-Disposition: attachment; filename=$filename");
Правда я еще не пробовал убирать attachment; и name=$filename");

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
PHP и скачивание файлов с FTP
« Ответ #48 : 16 Августа 2002, 00:54:04 »
Tronyx
Или это вообще не будет работать, так как ftp-сервер и http-сервер физически находятся в разных местах


Helios
RFC - это описание стандартов. http://www.rfc-editor.org
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
PHP и скачивание файлов с FTP
« Ответ #49 : 16 Августа 2002, 00:54:43 »
Helios
A RFC архивы - это сборник стандартов...
Класная весчь Яньдекькс. Попользуйся, коли тебе интересно.
AS IS...

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
PHP и скачивание файлов с FTP
« Ответ #50 : 16 Августа 2002, 02:06:23 »
Цитировать
Или это вообще не будет работать, так как ftp-сервер и http-сервер физически находятся в разных местах

А это паралельно.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
PHP и скачивание файлов с FTP
« Ответ #51 : 16 Августа 2002, 02:23:01 »
А еще MIME-типы можно смотреть в типах файлов в виндозе.

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
PHP и скачивание файлов с FTP
« Ответ #52 : 16 Августа 2002, 02:24:19 »
Tronyx
Вся эта заморочка и нужна-то была только для того, чтобы спрятать от подлого юзера логин с паролем...

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
PHP и скачивание файлов с FTP
« Ответ #53 : 16 Августа 2002, 09:46:43 »
Цитировать
Tronyx
Вся эта заморочка и нужна-то была только для того, чтобы спрятать от подлого юзера логин с паролем...

А вот что написал я:
Цитировать
но наверное в качалке юзера "пролезет" настоящее имя файла
Если я не прав поправьте
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
PHP и скачивание файлов с FTP
« Ответ #54 : 17 Августа 2002, 15:57:28 »
Кстати о докачке, пример есть в faq-е с ru.php
Лежит на faq.saterenko.ru
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
PHP и скачивание файлов с FTP
« Ответ #55 : 17 Августа 2002, 17:20:11 »

Оффлайн Helios

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.moderntalking.org
PHP и скачивание файлов с FTP
« Ответ #56 : 17 Августа 2002, 17:33:42 »
Доктор и Макс
Огоромное Вам двоим спасибо! На основе скрипта Доктора и ссылки, данной Максом, получился скрипт скачивающий с FTP и поддерживающий докачку! Ваши имена и mail\'ы через недельку-другую будут с благодарностью вывешены на http://www.moderntalking.org/mp3.php!

Если кому надо, вот конечный вариант скрипта:
$filename = "pornuha_warez.zip";
$ftp_username = "login";
$ftp_password = "password";
$server = "pornuhaandhack.ru";
$content_length=51638;
$fd = @fopen("ftp://$ftp_username:$ftp_password@$server/$filename", "rb");


if ($HTTP_SERVER_VARS["HTTP_RANGE"]) {
  $range = $HTTP_SERVER_VARS["HTTP_RANGE"];
  $range = str_replace("bytes=", "", $range);
  $range = str_replace("-", "", $range);
  if ($range) {fseek($fd, $range);}
}
$content = fread($fd, $content_length);
fclose($fd);
if ($range) {
  header("HTTP/1.1 206 Partial Content");
}
else {
  header("HTTP/1.1 200 OK");
}
header("Content-Disposition: attachment; filename=$filename");
header("Accept-Ranges: bytes");
header("Content-Length: ".($content_length-$range));
header("Content-Range: bytes $range-".($content_length -1)."/".$content_length);
header("Content-type: application/octet-stream");
print $content;
exit;
?>

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
PHP и скачивание файлов с FTP
« Ответ #57 : 17 Августа 2002, 17:44:37 »
Цитировать
Оно?


Да, сам фижу, что оно. Все нормально и понятно. Только не понялвот этого:


if ($HTTP_SERVER_VARS["HTTP_RANGE"]) { 
  
$range $HTTP_SERVER_VARS["HTTP_RANGE"]; 
  
$range str_replace("bytes="""$range); 
  
$range str_replace("-"""$range); 
  if (
$range) {fseek($fd$range);} 


А конкретно почему:

  $range 
str_replace("bytes="""$range); 
  
$range str_replace("-"""$range); 


Получается просто сливаем начало и конец диапазона?
bytes=1024-2048
Получается range=10242048
Или я не правильно понимаю что-то (например формата $HTTP_SERVER_VARS["HTTP_RANGE"])???

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28