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

Вниз

TIdFTPServer.OnStoreFile   Найти похожие ветки 

 
Gym ©   (2004-03-17 05:18) [0]

Привет. Значит написал такой обработчик:

procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
 const AFileName: String; AAppend: Boolean; var VStream: TStream);
var
LocalFileName : string;
FileStream : TFileStream;
begin
 LocalFileName:=LocalPath+VDir+AFileName;
 FileStream:=TFileStream.Create(LocalFileName,fmCreate);
 FileStream.CopyFrom(VStream,VStream.Size-1);
 FileStream.Free;
end;

На строке
FileStream.CopyFrom(VStream,VStream.Size-1);
вылетает ошибка
Acces violation at addres … in module FTPSERVER.EXE. Read of addres FFFFFFFF.
как будто потока VSream не существует вовсе.
Подскажите, может я что то не правильно делаю?


 
Gym ©   (2004-03-17 05:18) [0]

Привет. Значит написал такой обработчик:

procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
 const AFileName: String; AAppend: Boolean; var VStream: TStream);
var
LocalFileName : string;
FileStream : TFileStream;
begin
 LocalFileName:=LocalPath+VDir+AFileName;
 FileStream:=TFileStream.Create(LocalFileName,fmCreate);
 FileStream.CopyFrom(VStream,VStream.Size-1);
 FileStream.Free;
end;

На строке
FileStream.CopyFrom(VStream,VStream.Size-1);
вылетает ошибка
Acces violation at addres … in module FTPSERVER.EXE. Read of addres FFFFFFFF.
как будто потока VSream не существует вовсе.
Подскажите, может я что то не правильно делаю?


 
Verg ©   (2004-03-17 06:22) [1]

Это событие возникает на начало операции приема файла от клиента.
Тут тебя просят создать и вернуть этот VStream для последующего использования сервером для сохранения принятого файла.
т.е., например:

procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
const AFileName: String; AAppend: Boolean; var VStream: TStream);
var
begin
if not AAppend then
  VStream := TFileStream.Create(AFileName, fmCreate)
else
  VStream := TFileStream.Create(AFileName, fmOpenReadWrite);
end;


 
Verg ©   (2004-03-17 06:22) [1]

Это событие возникает на начало операции приема файла от клиента.
Тут тебя просят создать и вернуть этот VStream для последующего использования сервером для сохранения принятого файла.
т.е., например:

procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
const AFileName: String; AAppend: Boolean; var VStream: TStream);
var
begin
if not AAppend then
  VStream := TFileStream.Create(AFileName, fmCreate)
else
  VStream := TFileStream.Create(AFileName, fmOpenReadWrite);
end;


 
Verg ©   (2004-03-17 06:33) [2]

Хм. На всякий случай, if надо поправить:

 if not (AAppend and FileExists(AFileName)) then


 
Verg ©   (2004-03-17 06:33) [2]

Хм. На всякий случай, if надо поправить:

 if not (AAppend and FileExists(AFileName)) then


 
Gym ©   (2004-03-17 16:04) [3]

Спасибо с загрузкой файлов всё наладилось.

Только возник ещё один вопрос.
На этот раз с обработчиком TIdFTPServer.OnRenameFile.
После срабатывания процедуры клиент зависает.
Видимо, ему нужно как-то сообщить, что операция прошла успешно.
Сервер продолжает работать нормально. Файл переименовывается.
Что с клиентом?

procedure TForm1.IdFTPServer1RenameFile(ASender: TIdFTPServerThread;
 const ARenameFromFile, ARenameToFile: String);
var
 OldName,NewName : string;
begin
 OldName:=LocalPath+VDir+ARenameFromFile;
 NewName:=LocalPath+VDir+ ARenameToFile;
 RenameFile(OldName,NewName);
end;


 
Gym ©   (2004-03-17 16:04) [3]

Спасибо с загрузкой файлов всё наладилось.

Только возник ещё один вопрос.
На этот раз с обработчиком TIdFTPServer.OnRenameFile.
После срабатывания процедуры клиент зависает.
Видимо, ему нужно как-то сообщить, что операция прошла успешно.
Сервер продолжает работать нормально. Файл переименовывается.
Что с клиентом?

procedure TForm1.IdFTPServer1RenameFile(ASender: TIdFTPServerThread;
 const ARenameFromFile, ARenameToFile: String);
var
 OldName,NewName : string;
begin
 OldName:=LocalPath+VDir+ARenameFromFile;
 NewName:=LocalPath+VDir+ ARenameToFile;
 RenameFile(OldName,NewName);
end;


 
Gym ©   (2004-03-18 17:47) [4]

Нет версий?


 
Gym ©   (2004-03-18 17:47) [4]

Нет версий?



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

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

Наверх




Память: 0.46 MB
Время: 0.033 c
7-1079636270
Константин
2004-03-18 21:57
2004.05.09
Автозапуск


7-1080389662
Insert
2004-03-27 15:14
2004.05.09
Серийник жесткого диска...


3-1081797714
Mishenka
2004-04-12 23:21
2004.05.09
Можно ли определить была ли запись в таблицу?


3-1081691505
Крутыш
2004-04-11 17:51
2004.05.09
Где найти нормальный компонент.


1-1082399221
Kemik
2004-04-19 22:27
2004.05.09
Создание нового компонента.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский