2

PHP サーバー (RADPHP で記述) から Delphi Datasnap サーバー (Delphi XE) に大きな (<50MB) ファイルを送信する最良の方法は何ですか。接続の問題があるため、私は HTTP(S) を使用したいと考えていますが、これは私にとって新しい領域です。

PHP サーバーはユーザーのブラウザからのファイルのアップロードを受け入れて OK で、エンコード (base_64) できます。しかし、a) それを処理するための最良の方法ではない文字列に入れます b) 文字列を受信すると、DataSnap サーバーが「Max Line Length Exceeded」でクラッシュします

Datasnap サーバーには、TDSServer、TDSServerClass、TDSHTTPService、および TDSAuthenticationManager の 4 つのコンポーネントがあります。RADPHP サーバーは DSRestConnection コンポーネントを使用します。

4

1 に答える 1

1

私は Datasnap にあまり詳しくありませんが、次のようなことはできませんでした:

  • クライアントがファイルを RadPHP サーバーにアップロードします
  • これを Datasnap サーバーに送信したい場合は、次のようなダウンロード リンクを含むコマンドを送信します。

RadPHP: 新しいファイルです。リンクは次のとおりです: "http://www.mydomain.com/files/filename.extension"

Datasnap: 「OK」などの応答を送信し、ダウンロードを開始します。サーバー側では、たとえば TIdHTTP を使用できます。

実装は次のようになります。

procedure DatasnapServerClass.NewFile(const ALink: string);
var
  LIDHTTP: TIdHTTP;
begin
// create instance of TIdHTTP, and call the link to 
// download the file to your desired local folder
// using ALink as the URL
end;
于 2012-02-27T17:09:32.603 に答える