Автор Тема: Файл с другого сервера  (Прочитано 9227 раз)

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

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Файл с другого сервера
« : 16 Января 2004, 09:35:19 »
Господа Мастера, помогите pls.

Задача в следующем: скрипту передается адрес (полный URL, возможно с передачей параметров "file?query"... с этим я разберусь). По переданному адресу (при прямом обращении из браузера) происходит скачивание файла.

Можно ли как-нибудь извратиться, чтобы передать этот файл в браузер клиента от имени скрипта?

Дело в том, что я хочу немного преобразовать скачиваемый файл, а именно: сжать его по GZ, заменить MIME-тип (надо мне так) и т.п.

Мне сначала пришла в голову идея просто закачать файл на сервер через fsock, но этот номер не пройдет (хостер матом ругается... еще бы!).

Что делать - не знаю.
Кто что думает по этому поводу?
LJ: Backslashed life (rss)

Оффлайн Diesel

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с другого сервера
« Ответ #1 : 16 Января 2004, 09:45:31 »
CGVictor Читаешь файл например в $file_content. Определяешь его mime тип. Шлеш header(\'Content-Type:...\') а потом print $file_content;

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Файл с другого сервера
« Ответ #2 : 16 Января 2004, 09:49:24 »
Так в том дело, что если я читаю файл к себе в скрипт, то я это делаю при помощи fsock. Это - крайне нежелательно (хостер кричит, что заставит меня платить за весь тот траффик, который я этим подниму в его каналах. В принципе, он прав).

Может, есть какой-нибудь хеадер (header :) ), при помощи которого файл все равно закачается, но использования fsock в скрипте не будет?
LJ: Backslashed life (rss)

Оффлайн Diesel

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с другого сервера
« Ответ #3 : 16 Января 2004, 10:04:47 »
header(\'Location:\'.$file_name); перенаправит юзера на файл, но чтобы зажать его тебе в любом случае нужно прочитать на сервак его.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Файл с другого сервера
« Ответ #4 : 16 Января 2004, 10:13:47 »
Есть ли где-нибудь подробное русское читабельное описание поля HTTP-заголовка Content-disposition?
LJ: Backslashed life (rss)

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Файл с другого сервера
« Ответ #5 : 16 Января 2004, 10:18:17 »
http://forums.webscript.ru/showthread.php?threadid=3052 уже видел. Интересно.

RFC читал. Ничего интересного и полезного.
LJ: Backslashed life (rss)

Оффлайн Diesel

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с другого сервера
« Ответ #6 : 16 Января 2004, 10:21:03 »
Сори, не то...
« Последнее редактирование: 16 Января 2004, 10:27:21 от Diesel »

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Файл с другого сервера
« Ответ #7 : 16 Января 2004, 12:04:16 »
смешная тема.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Файл с другого сервера
« Ответ #8 : 16 Января 2004, 13:54:06 »
2RomikChef
Чем же??
LJ: Backslashed life (rss)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Файл с другого сервера
« Ответ #9 : 16 Января 2004, 14:16:01 »
Цитировать
CGVictor:
RFC читал. Ничего интересного и полезного.

Вот это вообще можно в рамочке повесить.

А после вот этого
Цитировать
CGVictor:
хостер кричит, что заставит меня платить за весь тот траффик, который я этим подниму в его каналах.

я вообще не вижу ни малейшего смысла в топике.

Ну и смысл самого первого сообщения доходит до меня с трудом.
Цитировать
CGVictor:
По переданному адресу (при прямом обращении из браузера) происходит скачивание файла.

а какое еще бывает обращение браузера? Кривое? что значит - прямое? Прямое КУДА? к твоему скрипту или к адресу, который передан? И туда и туда можно.
Если первое - то трафик. Если второе - то скрипт не при делах.
Я не представляю себе, чем надо думать, чтобы этого не сообразить.
"прямое обращение к другому серверу, но от имени скрита", "надо файл заархивировать скриптом, но ТАК, ЧТОБЫ СКРИПТ ЕГО НЕ СКАЧИВАЛ " - давненько я такого бреда не читал.

Оффлайн Diesel

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с другого сервера
« Ответ #10 : 16 Января 2004, 14:39:08 »
>RFC читал. Ничего интересного и полезного
Может не то читал?
http://krez.com.ua/techdoc/rfc/rfc/rfc1806.html

ЗЫ. RFC неинтересным не бывает :)

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Файл с другого сервера
« Ответ #11 : 19 Января 2004, 14:47:16 »
Diesel
Thanks!!!!!!! Странно, на rfceditor он не отмечен как активный... И вообще у него Status:Experimental...

RomikChef
Обьясняю в меру возможностей: надо получить файл не используя fsock.
Цитировать
я вообще не вижу ни малейшего смысла в топике.
Ну и смысл самого первого сообщения доходит до меня с трудом

Ты подумать не пробовал? Говорят, помогает...

Если бы ответ на вопрос лежал на поверхности - я бы его на форуме не задавал.
LJ: Backslashed life (rss)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Файл с другого сервера
« Ответ #12 : 19 Января 2004, 14:54:34 »
Цитировать
CGVictor:
Обьясняю в меру возможностей: надо получить файл не используя fsock.

Да, невелики твои возможности. 6 слов, из которых одно - несуществующее. Я-то думал, что это у тебя были временные трудности, а сейчас вижу, что ты весь такой.
сочувствую.

Ну, попробуй тогда "в меру возможностей" пояснить, а зачем тебе понадобилось такое извращение?
И, заодно, расскажи, чем тебе поможет другой способ в экономии трафика. Этот последний вопрос лично меня больше всего интересует. А ты его как-то обходишь стороной.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Файл с другого сервера
« Ответ #13 : 19 Января 2004, 14:56:39 »
Diesel , может быть ты мне пояснишь, как этот рфц поможет товарищу в альтернатином способе скачивания, при котором трафик не расходуется? Весьма любопытно.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Файл с другого сервера
« Ответ #14 : 19 Января 2004, 15:08:15 »
RomikChef
Ну вот, можно же общаться без наездов!

Спасибо за сочуствие, кстати.

Итак, зачем понадобилось извращение:

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

Мне нужно получить файл на его хост, преобразовать и послать пользователю. У хостера способностей, по всей видимости, еще меньше, чем у меня :), т.к. он выставил следующее условие: никакого использования сокетов (fsockopen) нет и быть не может. Причем после некоторого времени общения с хостером я понял, что дело не в экономии траффика, а просто кто-то ему по большой дружбе сказал запретить клиентам использовать упомянутые сокеты. Так он и сделал. Зачем так надо - то ли объяснить забыли, то ли он сам не интересуется...

Вот такое положение дел.

Поэтому я ищу обходные пути. И был бы очень благодарен тому, кто объяснил бы принцип действия content-disposition. Пока я за RFC еще не брался, поэтому не уверен, что это то, что мне надо.

P.S.Да... Об обращениях:
http://path.to/file.ext - прямое обращение
http://my.host/script.php?url=http://path.to/file.ext - косвенное... или кривое.
LJ: Backslashed life (rss)

 

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