Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как узнать, существует файл на сервере??? 
:(
    Опции темы
Bima
Дата 18.4.2007, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день.
Подскажите, как узнать существует ли файл на сервере в интернете или нет?

Если запрашивать размер, то обычно возвращается произвольное число, которое не соответствует дейсвительности.


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
pandrew
Дата 18.4.2007, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А FileExists(name) не пробовал?
PM MAIL   Вверх
Bima
Дата 18.4.2007, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что это команда работает с интернет адресами???


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
pandrew
Дата 18.4.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Bima @  18.4.2007,  10:13 Найти цитируемый пост)
А что это команда работает с интернет адресами??? 

Пардон, тогда причем тут BCB?
PM MAIL   Вверх
Anikmar
Дата 18.4.2007, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Чтобы что-то внятное сказать, желательно бы узнать компонет или протокол, по которому обращаетесь к серверу.
Когда я использовал FTP у меня насколько я помню не было с этим проблем.
PM MAIL ICQ   Вверх
_hunter
Дата 18.4.2007, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



в общем случае -- никак.
в частном -- выполни HEAD-запрос.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bima
Дата 18.4.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Пардон, тогда причем тут BCB? 

потому что программу пишу на ВСВ.

Цитата

Чтобы что-то внятное сказать, желательно бы узнать компонет или протокол, по которому обращаетесь к серверу.
Когда я использовал FTP у меня насколько я помню не было с этим проблем. 

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

Цитата

в общем случае -- никак.
в частном -- выполни HEAD-запрос.

можно по подробнее (если возможно, то с примером)

Что касается протокола... эээ... даже не знаю что сказать (наверно HTTP).
Допустим мне нужно узнать существует ли файл test.zip на сервере http:\\vasya.pupkin.ru (адрес файла на скачивание http:\\vasya.pupkin.ru\test.zip) как это сделать???


Это сообщение отредактировал(а) Bima - 18.4.2007, 12:06


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
_hunter
Дата 18.4.2007, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



http://forum.vingrad.ru/topic-122028.html
ну и еещ наискать можеш...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
ura5
Дата 18.4.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Смотри ответы выше ura5.
PM MAIL   Вверх
Bima
Дата 19.4.2007, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Смотри ответы выше ura5. 

хм.... я так и не понял про что писалось???


Цитата

http://forum.vingrad.ru/topic-122028.html
ну и еещ наискать можеш... 

_hunter, Я конечно извеняюсь, но каким образом послать команду:
Код

HEAD /test.zip HTTP/1.1
Accept: */*
Host: vasya.pupkin.ru 

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


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
HappyLife
Дата 19.4.2007, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Bima, просто общаться с сервером нужно на языке сервера.
И тебе показали, что нужно сказать серверу, чтобы он тебе ответил)
А послать можно через простой сокет, по восьмедесятому порту на нужный сервер, и ждать ответа.
PM MAIL   Вверх
Bima
Дата 19.4.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

А послать можно через простой сокет, по восьмедесятому порту на нужный сервер, и ждать ответа.

Пример можно? smile 


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
HappyLife
Дата 19.4.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Bima, 
например можно вот так.
Код

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{


}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        ClientSocket1->Host = "forum.vingrad.ru";
        ClientSocket1->Port = 80;
        ClientSocket1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
        TStringList * List = new TStringList();
        List->Delimiter = ' ';
        List->DelimitedText = Socket->ReceiveText();

        if (StrToInt(List->Strings[1]) == 200)
        {
                ShowMessage("Файл есть");
        }
        delete List;
        ClientSocket1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
        AnsiString Header = "HEAD /index.php HTTP/1.1\r\n"
                            "Accept: */*\r\n"
                            "Host: forum.vingrad.ru\r\n\r\n";
        Socket->SendText(Header);
}
//---------------------------------------------------------------------------

Как видишь самое главное, это то что мы передаем в хедере.
Можно это еще реализовать через Indy можно через FastNet
Но лучше всего через простой виндозные без наворотов сокет. Но у меня сейчас нет времени писать. В инете полно примеров как скачать страничку через сокеты. Сервер всегда возвращает заголовок с тем есть там что-то или нет. Как тебе показали, код 200 означает что все в порядке.

Это сообщение отредактировал(а) HappyLife - 19.4.2007, 10:40
PM MAIL   Вверх
Bima
Дата 20.4.2007, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Попробовал код :(
получил ошибку Asynchronous socket error 10060.

пробовал код:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ClientSocket1->Host = "forum.vingrad.ru";
ClientSocket1->Port = 80;
ClientSocket1->Open();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Socket Read");
TStringList * List = new TStringList();
List->Delimiter = ' ';
List->DelimitedText = Socket->ReceiveText();

if (StrToInt(List->Strings[1]) == 200)
   {
   ShowMessage("Файл есть");
   Memo1->Lines->Add("Файл есть");
   }
else
   Memo1->Lines->Add("Файла нет");

delete List;
ClientSocket1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket)
{
AnsiString Header = "HEAD /index.php HTTP/1.1\r\n"
                    "Accept: */*\r\n"
                    "Host: forum.vingrad.ru\r\n\r\n";
Socket->SendText(Header);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Error(TObject *Sender, TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
Memo1->Lines->Add(ErrorCode);
}
//---------------------------------------------------------------------------

в Мемо выводится только код ошибки 10060.

Есть ли команды WinHTTP( WinInet), для определения есть ли файл на сервере??? 


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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