Форум: "Сети";
Текущий архив: 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.064 c