Hallo,
ich sitze in der Arbeit an einer Client/Server Anwendung die wir mit Datasnap realisieren.
Sonst lief auch alles, nur seit heute bekomme ich beim Upload einer Datei eine
Exception.
Über einen TOpenDialog wählt man eine Datei. Die wird mit Pfad in eine Listbox eingetragen (lbFiles).
Hier der Client:
aFileStream: TFileStream;
Delphi-Quellcode:
for i := 0
to lbFiles.Items.Count - 1
do
begin
aFileStream := TFileStream.Create(lbFiles.Items[i], fmOpenRead);
if aClient.UploadFile(aFileStream, Store, ExtractFileName(lbFiles.Items[i]))
then // Hier exception!
begin
Konsole.TextHinweis(ExtractFileName(lbFiles.Items[i]) + '
gesendet!');
end;
end;
Die
Exception:
Exception-Klasse TDBXError mit Meldung 'Remote-Fehler: Ungültiger Dateiname - %s'.
Der Server:
Delphi-Quellcode:
const
BufferSize = 1024;
var
aFileStream: TFileStream;
Buffer: TBytes;
BytesReadCount: Integer;
Success: boolean;
begin
Success := false;
if not DirectoryExists(ExtractFilePath(ParamStr(0)) + 'Files\') then
begin
MkDir(ExtractFilePath(ParamStr(0)) + 'Files\' + Store);
end;
try
if FileExists(Name) then
begin
DeleteFile(Name);
end;
aFileStream := TFileStream.Create(ExtractFilePath(ParamStr(0)) + 'Files\' + Name, fmCreate);
SetLength(Buffer, BufferSize);
repeat
BytesReadCount := str.Read(Buffer[0], BufferSize);
if (BytesReadCount > 0) then
aFileStream.Write(Buffer[0], BytesReadCount);
until (BytesReadCount < BufferSize);
str.Position := 0;
Success := True;
finally
aFileStream.Free;
SetLength(Buffer, 0);
end;
Result := Success;
end;
Ich verstehe nicht wo der Fehler liegt, weil gestern noch alles lief...
Hat wer eine Idee?