ユニットUnit1は、 インタフェースが 使用する Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、 ダイアログ、IdBaseComponent、IdComponent、IdTCPConnection、IdTCPClient、 IdHTTP、StdCtrls; 入力 TForm1 = クラス(TFormは) BTN1:のTButtonと、 IdHTTP1:TIdHTTP。 手順btn1Click(送信者:TObjectを); 手順FormCreate(送信者:TObjectを); プライベート { プライベート宣言} 公共 { 公開宣言} エンド。 VAR をForm1:TForm1; 実装 {$ R * .DFM } 手順TForm1.btn1Click(送信者:TObjectを)。 VAR ILEN:整数; SFN、SPATH:文字列; MS、MS2:TMemoryStream。 開始 MS: = TMemoryStream。作成します。 試す SPATHを: = ExtractFilePath(application.ExeName)+ ' a.bmp ' ; SFN: = ExtractFileName(SPATH)。 ILEN: = 長さ(SFN)。 MS.WriteBuffer(ILEN、はsizeof(ILEN))。 MS.WriteBuffer(SFN [ 1 ]、ILEN)。 MS2: = TMemoryStream。作ります。 MS2.LoadFromFile(SPATH)。 ILEN: = MS2.Size。 MS.WriteBuffer(ILEN、はsizeof(ILEN))。 MS.CopyFrom(MS2、ILEN)。 MS2.Free; IDHTTP1.post(' http://127.0.0.1:2111 '、MS、ゼロ)。 最後に MS.Free; エンド; エンド; 手順TForm1.FormCreate(送信者:TObjectを); 開始 // IdHTTP1.Host:= '127.0.0.1'を、 // IdHTTP1.Port:= 2111; エンド; 終わり。 ユニットUnit1は、 インタフェース の使用 Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、 ダイアログ、IdBaseComponent、IdComponent、IdTCPServer、IdCustomHTTPServer、 IdHTTPServer。 入力 TForm1 = クラス(TFormは) IdHTTPServer1:TIdHTTPServerと、 手順IdHTTPServer1CommandGet(AThread:TIdPeerThread; ARequestInfo:TIdHTTPRequestInfo; AResponseInfo:TIdHTTPResponseInfo)。 手順FormCreate(送信者:TObjectを); プライベート { プライベート宣言} 公共 { 公開宣言} エンド。 VAR をForm1:TForm1; 実装 { $ R&LT * DFM。} 手順TForm1.IdHTTPServer1CommandGet(AThread:TIdPeerThread; ARequestInfo:TIdHTTPRequestInfo; AResponseInfo:TIdHTTPResponseInfo); VAR ILEN:整数、 SDATA、SFN:文字列; MS:TMemoryStream; pDataを:PChar型; 始める SDATAを: = ARequestInfo .UnparsedParams; IF SDATA <> 「」は、 次に 開始 { 単純なメッセージ・フォーマット、データ長、データ1,2のデータ長、データ2の自定義 |コンテンツファイル| |ファイルのコンテンツ長|名|ファイル名の長さを | 5。 | a.bmp | 17788 | 0x10101010101001010100101 ... | } MS: = TMemoryStream。作成します。; トライ // ファイル名を読み取るために1。 MS.WriteBuffer(SDATA [ 1。 、長さ(SDATAを)]); MS.Position: = 0 ; MS.ReadBuffer(ILEN、はsizeof(ILEN)); // リードファイル名の長さ はsetLength (SFN、ILEN); MS.ReadBuffer(SFN [ 1。、ILENは]); // リードファイル名 // 2ファイルの内容を読み取る MS.ReadBuffer(ILEN、はsizeof(ILENを)); // ファイル長の内容を読み取る (GetMemをpDataを、ILEN); MS.ReadBuffer(pDataを^、ILEN); // ファイルの内容を保存した画像データであるpDataをを読ん // ファイルとして保存された3 MS.Clear; MS.WriteBuffer(pDataを^、ILEN)。 MS.SaveToFile(ExtractFilePath(Application.ExeName) + SFN)。 最後に MS.Free; エンド; エンド; エンド; 手順TForm1.FormCreate(送信者:TObjectを); 開始 IdHTTPServer1.DefaultPort: = 2111 ; IdHTTPServer1.Active: = はtrue。 Self.Caption: = ' 启动' ; エンド; 終わり。
アップロードおよびダウンロードファイルidhttp
おすすめ
転載: www.cnblogs.com/tobetterlife/p/12169477.html
ランキング