Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закачка фалов с сервера с помощью http протокола 
V
    Опции темы
usja
Дата 13.7.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.7.2006

Репутация: нет
Всего: нет



Имеется файл на сайте http://dddd.ddd/ddddd/d/d//dd/d/dd/rr.txt
как без импользвния курла закачать файл себе на винт?  smile  
PM MAIL   Вверх
Rubynovich
Дата 13.7.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 7.6.2006

Репутация: 3
Всего: 3



Код

reqiure 'open-uri'
my_url = 'http://dddd.ddd/ddddd/d/d//dd/d/dd/rr.txt'

File.open(File.basename(my_url),'w+'){ |file| 
    file.puts( open(my_url) )
}


А что такое курл? 
PM MAIL   Вверх
usja
Дата 14.7.2006, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.7.2006

Репутация: нет
Всего: нет



а в какой файл он пишет?  
PM MAIL   Вверх
Rubynovich
Дата 14.7.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 7.6.2006

Репутация: 3
Всего: 3



В File.basename( my_url )... В данном случае -- rr.txt (он имя файла из адреса выдергивает).

ЗЫ. Программу специально растянул, чтобы понятно было. 
PM MAIL   Вверх
Akeem
Дата 14.7.2006, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

Репутация: нет
Всего: 3



Вопрос в тему. есть ссылка в виде http://ввв.вввввюввв.вввв/ввв-bin/вввввв/wget_script.pl?id=8594_№№№№&restricted=&type=data

как тогда будет выглядеть программа для закачки файла wget_script.pl ?? 


--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

PM MAIL WWW ICQ   Вверх
Rubynovich
Дата 15.7.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 7.6.2006

Репутация: 3
Всего: 3



Если тебе нужен wget_script.pl, то нет ничего проще и бесполезней. =) Отрезаешь basename и split'ишь по знаку вопроса. Берешь нулевой элемент.

Скорее всего имеется в виду имя файла, которое начинает предавать wget_script.pl. А это уже совсем другая задача. Надо читать заголовки и вытаскивать оттуда имя передаваемого файла. Обычно имя хранится в параметре Content-type

Код

require 'open-uri'
url = "http://ввв.вввввюввв.вввв/ввв-bin/вввввв/wget_script.pl?id=8594_№№№№&restricted=&type=data"
open( url ){ |http|
    File.open( http.content_type[ /(name=)"?(.+?)"?/, 2 ] ){ |file|
        file.puts http.read
    }
}


Один баг. Если имя файла русскоязычное, то по MIME оно будет шифроваться base64. Там может получиться немного сложнее...

PS. Программа писалась в браузере и не тестировалась на работоспособность. 
PM MAIL   Вверх
Rubynovich
Дата 15.7.2006, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 7.6.2006

Репутация: 3
Всего: 3



Протестить не на чем. Могу предложить вариант для тестирования.
Код

require 'open-uri'
require 'pp'
url = "http://ввв.вввввюввв.вввв/ввв-bin/вввввв/wget_script.pl?id=8594_№№№№&restricted=&type=data"
pp open( url ).meta


Выдаст хеш заголовка... там и надо искать имя. 
PM MAIL   Вверх
Akeem
Дата 16.7.2006, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

Репутация: нет
Всего: 3



Спасибо.  


--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1175 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.