私はindyサーバーで新しく、この単純な作業に苦労しています。サーバーを作成してファイルをアップロードする必要があります。そのサイズは常に128バイトです。その後、誰かがサーバーのホームページを開くと、ファイルは自動的に送信されます。だから、:Delphi indyがストリームをクライアントに送信する
- あなたは、私が127.0.0.1を設定していることがわかります下に(ディスク上のファイル(128バイトである1)
- ブラウザを開き
- Firefoxの のようなタイプのURLをアップロードします。 798)、Enterを押すと白いページが表示されますが、ファイルのダウンロードを求めるダイアログが表示されます。
私はこれまでのところ、このコードを書かれている:
procedure TForm1.Button1Click(Sender: TObject);
begin
// IP = 127.0.0.1:798 (port is 798)
IdTCPServer1.Active := true;
Memo1.Lines.Add('Server started at: ' + TimeToStr(Now) + slinebreak);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
IdTCPServer1.Active := false;
Memo1.Lines.Add('Server stopped at: ' + TimeToStr(Now));
end;
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var a: TFileStream;
begin
a := TFileStream.Create('C:\Users\defaulr.user\Desktop\datfile.pkm', fmOpenWrite);
AContext.Connection.IOHandler.Write(a);
end;
これは形式です:
スタートButton1
で、エンドButton2
です。あなたが見ることができるように、私はファイルをストリームにロードして、ページを開くときに出力として送信しようとしています。これは正しい方法ですか?あなたは、Webブラウザ経由でファイルにアクセスしているので、あなたの代わりにTIdTCPServer
のTIdHTTPServer
を使用する必要があります
だけマイナーnitpick:あなたがコンポーネントに意味のある名前を付けるならば、あなたがする必要はありません'Button1'などが何であるか説明してください。例えば。 'StartBtn'と' StopBtn'です。 –
またtry-finallyやtry-catchブロックを使うべきです –