私はFireMonkeyでモバイルアプリケーションを開発しています。スマートフォンカメラで写真を撮り、Firebirdデータベースに保存したいと考えています。Indy HTTP接続FireMonkeyですべての画像データを取得できないのはなぜですか?
私は使用しているHTTP接続を介して画像データを渡す際にいくつか問題があります。サーバーの画像データをすべて取得しないため、HTTPのGET要求にパラメータの最大サイズがあると思います接続または同様のもの。流れの中
SAVE画像データ:
これは私が使用するコードです。 PASSストリームにJSON
stream := TMemoryStream.Create;
try
image.Bitmap.SaveToStream(stream);
stream.Position := 0;
jsonPhoto := TJSONArray.Create;
try
jsonPhoto := TDBXJSONTools.StreamToJSON(stream, 0, stream.Size);
finally
//jsonPhoto.Free;
end;
finally
stream.Free;
end;
画像データであるjsonPhoto.toStringの大きさは、2368バイトあります。 HTTP接続
try
result := IdHTTP1.Get(TIdURI.PathEncode('http://'+MyDirIP+':8080/DATABASE_NAME?USERNO='+userNum+'&BUILDINGNO='+jsonBuildNo+'&BUILDINGNAME='+jsonBuildName+'&OBJECTNO='+jsonObjNo+'&OBJECTNAME='+jsonObjName+'&PHOTO='+jsonPhoto.ToString+'&NOTE='+memo_Notes.Lines.Text));
except
on E: Exception do begin
ShowMessage('Error connection: '+E.Message);
end;
end;
私は、サーバー上で取得jsonPhoto.toStringの内容をBYサーバに
SEND DATAが、私はこのような理由により、送信されていないすべてのデータを持って、私はパラメータがあると思いますデフォルトでは、HTTP接続でのサイズです。また、受信した画像データのサイズが999バイトであることを確認しました。他のパラメータでは、問題なくすべての情報を取得できます。
また、サーバーにデータを取得するときに、jsonのテキストのように、またはストリームのようにデータベースに保存する必要がありますか?
ありがとうございます!
はい、これはまさに起きています! POSTを使用して私の接続の問題を解決しましたが、サイズの制限は私がそれを知っていなかったために制限していたためです。ありがとう、私はこの問題で長い時間がかかりました。私の答えが遅れて申し訳ありません。 – KryNaC