![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Upload FTP несовпадения размеров исходного и полученного файлов
DenKop © (2003-07-11 02:06:00)Заливаю файл на ftp сервер так:
const BufferSize = 1024;
var
Buffer: array[1..BufferSize] of Byte;
.............
begin
.............
FileStream:=TFileStream.Create(FileName,fmOpenRead);
try
repeat
BufferLen:=FileStream.Read(Buffer,SizeOf(Buffer));
( myFtp, @Buffer, SizeOf(Buffer)
Заливаю файл на ftp сервер так:
const BufferSize = 1024;
var
Buffer: array[1..BufferSize] of Byte;
.............
begin
.............
FileStream:=TFileStream.Create(FileName,fmOpenRead);
try
repeat
BufferLen:=FileStream.Read(Buffer,SizeOf(Buffer));
InternetWriteFile(myFtp, @Buffer, SizeOf(Buffer), BufferLen);
Application.ProcessMessages;
until FileStream.Position=FileStream.Size;
finally
FileStream.Free;
end;
end;
Исходный файл 73737 байт
На сервере получаю 74752 байт
Что я неправильно делаю?
Verg (2003-07-16 16:52:00) [1]
InternetWriteFile(myFtp, @Buffer, SizeOf(Buffer), BufferLen);
Дай угадаю:
var BytesWritten : integer;
...
InternetWriteFile(myFtp, @Buffer, BufferLen, BytesWritten);
DenKop (2003-07-16 14:53:00) [2]
> Похоже на то, что файл посылается в текстовой моде.
Не совсем так.
myFtp := FtpOpenFile(
hInt,
PChar(ExtractFileName(FileName)),
GENERIC_WRITE,
FTP_TRANSFER_TYPE_BINARY,
0);
nikkie (2003-07-16 02:22:00) [3]
>Исходный файл 73737 байт
>На сервере получаю 74752 байт
Похоже на то, что файл посылается в текстовой моде. В InetAPI не разбирался, поэтому не могу навскидку сказать, где бы это можно было изменить. В любом случае хорошо бы помотреть лог фтп-сессии (скажем, сделать свой прокси на IdMappedPort)
DenKop (2003-07-16 00:53:00) [4]
Ну неужели никто не знает ответа на такой примитивный вопрос??
DenKop (2003-07-11 02:08:00) [5]
И ещё попутный вопрос:
при BufferSize = 1024 файл качается ~45сек.
а при BufferSize = 16 файл качается ~25сек.
Чем хорошо результат на лицо. А чем плох маленький буфер?