Ich entwickle eine mobile Anwendung in FireMonkey und möchte ein Foto mit einer Smartphone-Kamera machen und in meiner Firebird-Datenbank speichern.Warum bekomme ich nicht alle Bilddaten in einer Indy HTTP Verbindung FireMonkey?
Ich habe mehrere Probleme, die Bilddaten über die HTTP-Verbindung zu übergeben, die ich benutze, da ich nicht alle Bilddaten auf dem Server bekomme und ich denke, es gibt eine maximale Größe für Parameter in der GET-Anfrage des HTTP Verbindung oder ähnliches etwas.
Dies ist der Code, den ich verwenden:
SAVE-Bilddaten in STREAM. PASS STREAM TO 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;
Die Größe jsonPhoto.toString, wo die Bilddaten sind, ist 2368 Bytes.
Senden von Daten an SERVER VON HTTP-Verbindung
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;
Der Gehalt an jsonPhoto.toString ich auf dem Server erhalten hat nicht alle Daten, die ich geschickt, um diesem Grund denke ich, dass es ein Parameter Größe standardmäßig in der HTTP-Verbindung. Außerdem habe ich getestet, dass die Größe der empfangenen Bilddaten 999 Bytes ist. In den anderen Parametern bekomme ich alle Informationen ohne Probleme.
Darüber hinaus, wenn ich Daten im Server bekomme, sollte ich es in der Datenbank wie ein JSON-Text oder wie ein Stream speichern?
Danke!
Ja, es ist genau was passiert !! Verwenden Sie POST löste mein Verbindungsproblem, aber meine Begrenzung in der Größe war wegen ich beschränkte es, ohne dass ich es wusste. Danke, ich habe mich lange mit dieser Angelegenheit beschäftigt. Sorry für die Verzögerung meiner Antwort. – KryNaC