![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по FtpGetFile
SortoVaritu © (2009-06-19 10:17:00)Вопрос в следующем. На FTP лежит несколько файлов. Эти несколько файлов являются разрезанным архивом rar. При использовании FTPGetFile файлы скачиваются на мой компьютер. НО при попытке их собрать в архив имеем ошибку контрольной суммы. Файлы по 100 МБ. Для доступа к FTP используется прокси. В чем может быть проблема?
SortoVaritu (2009-06-25 18:21:00) [1]В чистом проекте. Твой код я вставил в абсолютно чистый проект.
Сергей М. (2009-06-25 17:25:00) [2]Ты экспериментируешь в заведомо "чистом" тестовом проекте или в "боевом" ?
SortoVaritu (2009-06-25 17:12:00) [3]Хотя в общем ты прав. Думаешь проблема с компилятором или с с системой? Возможно с Wininet.dll?
Сергей М. (2009-06-25 16:29:00) [4]
> последний параметр меня смущает
Он тебя не должен смущать, ибо у меня код успешно работает.
А что собссно смущает-то ? Уже жевали-пережевали этот вопрос в начале топика ..
SortoVaritu (2009-06-25 16:02:00) [5]function FtpCommand(
hConnect: HINTERNET;
fExpectResponse: BOOL;
dwFlags: DWORD;
lpszCommand: PChar;
dwContext: DWORD;
var hFtpCommand: HINTERNET): BOOL;
stdcall; external 'wininet.dll' name 'FtpCommandA';
Если ты это имеешь ввиду, то я же у тебя ее и скопировал. Только вот последний параметр меня смущает.
Сергей М. (2009-06-25 15:51:00) [6]А декларация FTPCommand у тебя случаем не кривая ?
Покажи-ка ее ..
SortoVaritu (2009-06-25 14:54:00) [7]Да. Пошагово отлаживал.
Сергей М. (2009-06-25 13:33:00) [8]А как узнал, что имеенно FTPCommand, а не что-то иное ?
В отладике пошагово или как ?
SortoVaritu (2009-06-25 13:21:00) [9]Так точно. FTPCommand выбрасывает одну и ту же ошибку
Сергей М. (2009-06-25 12:57:00) [10]Хочешь сказать, что способ доступа не влияет ?
Т.е. один и тот же код (без использования прокси) не работает ни здесь ни там, возбуждая одно и тио же исключение на одной и той же строчке ?
Ну хорошо.
А мойкод (один в один или без использования прокси) ТОЖЕ возбуждает исключение при разных условиях способах доступа ?
SortoVaritu (2009-06-25 12:50:00) [11]У меня есть и такой и такой. Все это я делаю дома. Дома у меня доступ прямой. Прямое соединение через провайдера.
Сергей М. (2009-06-25 12:45:00) [12]
> На прямую делаю
Доступ в Тырнет у тебя прямой или из корп.сети ?
Сергей М. (2009-06-25 12:40:00) [13]И какой же размер у 1.txt ?
SortoVaritu (2009-06-25 12:23:00) [14]Блин. Я уже и прокси не использую. На прямую делаю. Чтобы исключить любую вероятность его вмешательства.
Сергей М. (2009-06-25 12:15:00) [15]
> Для доступа к FTP используется прокси
Ну и где у тебя в коде используется прокси ?
Нпапрямую же лезешь к ресурсу ..
SortoVaritu (2009-06-25 11:41:00) [16]
function FtpCommand(
hConnect: HINTERNET;
fExpectResponse: BOOL;
dwFlags: DWORD;
lpszCommand: PChar;
dwContext: DWORD;
var hFtpCommand: HINTERNET): BOOL;
stdcall; external 'wininet.dll' name 'FtpCommandA';
const
url = 'vh22.win.hoster.by';
procedure TForm1.Button5Click(Sender: TObject);
var
hInet, hFTPSession, hFile: HINTERNET;
RCode, RTLen: Cardinal;
RText: String;
begin
hInet := InternetOpen('FTP', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
Win32Check(Assigned(hInet));
try
hFTPSession := InternetConnect(hInet, 'vh22.win.hoster.by', 21, login, password, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
Win32Check(Assigned(hFTPSession));
try
Win32Check(FtpCommand(hFTPSession, True, FTP_TRANSFER_TYPE_BINARY, 'RETR 1.txt', 0, hFile));
try
RTLen := 255;
SetLength(RText, RTLen);
RCode := 12003; // <-- бессмысленная строка !!!!
Win32Check(InternetGetLastResponseInfo(RCode, PChar(RText), RTLen));
SetLength(RText, RTLen);
ShowMessage('Response code = ' + IntToStr(RCode) + #10#10'Response text is'#10#10 + RText)
finally
InternetCloseHandle(hFile);
end;
finally
InternetCloseHandle(hFTPSession);
end;
finally
InternetCloseHandle(hInet);
end;
end;
Сергей М. (2009-06-25 11:25:00) [17]
> код внес один в один. только сервер свой подставил
И это ты называешь "один в один" ?)
Приводи текст с изменениями ..
SortoVaritu (2009-06-25 11:11:00) [18]код внес один в один. только сервер свой подставил ну и имя файла тож который на сервере лежит а так один в один
Сергей М. (2009-06-25 11:05:00) [19]Ты это код пробовал "один в один" ?
Или свои изменения внес ?
Если внес, показывай весь этот фрагмент со своими изменениями ..
SortoVaritu (2009-06-25 10:59:00) [20]Windows XP SP3. Delphi 7.
Я вот тоже думаю, что не в проге дело.