Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

Upload FTP несовпадения размеров исходного и полученного файлов   Найти похожие ветки 

 
DenKop   (2003-07-11 02:06) [0]

Заливаю файл на 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 байт

Что я неправильно делаю?


 
DenKop   (2003-07-11 02:08) [1]

И ещё попутный вопрос:
при BufferSize = 1024 файл качается ~45сек.
а при BufferSize = 16 файл качается ~25сек.
Чем хорошо результат на лицо. А чем плох маленький буфер?


 
DenKop   (2003-07-16 00:53) [2]

Ну неужели никто не знает ответа на такой примитивный вопрос??


 
nikkie   (2003-07-16 02:22) [3]

>Исходный файл 73737 байт
>На сервере получаю 74752 байт
Похоже на то, что файл посылается в текстовой моде. В InetAPI не разбирался, поэтому не могу навскидку сказать, где бы это можно было изменить. В любом случае хорошо бы помотреть лог фтп-сессии (скажем, сделать свой прокси на IdMappedPort)


 
DenKop   (2003-07-16 14:53) [4]


> Похоже на то, что файл посылается в текстовой моде.


Не совсем так.
myFtp := FtpOpenFile(
hInt,
PChar(ExtractFileName(FileName)),
GENERIC_WRITE,
FTP_TRANSFER_TYPE_BINARY,
0);


 
Verg   (2003-07-16 16:52) [5]

InternetWriteFile(myFtp, @Buffer, SizeOf(Buffer), BufferLen);

Дай угадаю:

var BytesWritten : integer;
...

InternetWriteFile(myFtp, @Buffer, BufferLen, BytesWritten);



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-58732
race1
2003-09-07 14:31
2003.09.18
tscrollbox


1-58645
Olivka
2003-09-05 09:42
2003.09.18
как сделать, чтобы программа перезапустила саму себя


9-58507
dynadan
2003-03-16 23:41
2003.09.18
помогите разобраться


1-58750
Overlord
2003-09-06 22:46
2003.09.18
Вопрос про звук!


1-58741
AlexSSS
2003-09-07 11:26
2003.09.18
Обработка виндозных сообщений





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский