Envoyer et récupèrer une image par DataSnap - Limitation BLOB
Bonjour,
Je développe une application mobile (phonegap / html - js) qui prends des photos, et les envois à un serveur via REST.
Pour cela, lorsque l'application mobile prends la photo, je récupère le code de la photo en base64, je scinde ce code (donc une chaîne très longue) tous les 1000 caractères par exemple, je boucle dessus, et j'envoi au serveur REST ces portions de 1000, le serveur lui les concaténant dans un champs BLOB de type text.
Le problème est que sur des grosses photos cela ne passe pas.
Je n'arrive pas à identifier si cela proviens de la limitation du BLOB (je ne pense pas), ou alors de l'algo sur le serveur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
procedure TServerMethods.addObservationPictureDatas(const user, pass, numObs, pictureDatas : string);
var
currentPictureDatas: string;
begin
// On crée l'objet de base de données
with getSyncFrbf( getNumUser( user, pass ) ) do begin
// On insère la nouvelle chaine
RequestParams.Add( 'pictureDatas', pictureDatas );
RequestParams.Add( 'numobs', numObs );
Request.Add( 'UPDATE REC_OBSERVATIONS SET PICTUREDATAS = ' );
Request.Add( '(SELECT PICTUREDATAS FROM REC_OBSERVATIONS WHERE NUM_OBS = :numobs) || :pictureDatas' );
Request.Add( 'WHERE NUM_OBS = :numobs' );
ExecSQLAndCommit;
Free;
end; |
Vu que je reste un grand débutant sous delphi, peut être que je dois utiliser une autre méthode ? Un stream ?
Merci pour votre aide