1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WebService REST- Send image

Discussion dans 'Sujets Divers' créé par Jackson, Mar 26, 2020.

  1. Jackson

    Jackson Member

    Inscrit:
    Jan 19, 2018
    Messages:
    50
    J'aime reçus:
    19
    Hi to all. I try to send image with other data from android application to webservice.
    I am create REST WebService and create function to receive and write data into database.
    My android form look like this:
    [​IMG]

    After click on "Confirm-Save", I start this code:

    sRecordContentInJSON is ANSI string
    sAnimalPhoto is ANSI string = Encrypt (IMG_Photo, "", cryptNone, encodeBASE64)
    vPassage is Variant
    vPassage.AnimalID = COMBO_Animal..StoredValue
    vPassage.ClientID = COMBO_Client..StoredValue
    vPassage.DatePassage = EDT_Visit_Date
    vPassage.TimePassage = EDT_Visit_Time
    vPassage.VisitorID = gnUserID
    vPassage.VisitReport = EDT_Visit_Report
    //vPassage.Photo = bufAnimalPhoto
    vPassage.Photo = sAnimalPhoto
    sRecordContentInJSON = VariantToJSON (vPassage)
    maReq is httpRequest
    maRep is httpResponse
    maReq.URL = gsIPAdresa + "PassageAdd"
    maReq..ContentType = "application / json"
    maReq.Content = sRecordContentInJSON
    maReq..Method = httpPost
    myRep = HTTPSend (myReq)
    IF ErrorOccurred THEN
    Error (ErrorInfo (errFullDetails))
    ELSE

    IF myDir.DescriptionStatusCode = "OK" THEN
    ToastDisplay ("Passage is added with success", toastShort, vaMiddle, haCenter)
    ELSE
    ToastDisplay (myRep.DescriptionStatusCode + "Problem. Something is wrong", toastShort, vaMiddle, haCenter)
    END
    END

    On REST service my procedure do this:

    PROCEDURE AddPAssage ()
    sRecordContentInJSON is ANSI string = WebserviceParameter (paramBuffer)
    vRec is Variant = JSONToVariant (sRecordContentInJSON)
    HReset (Passage)
    Passage.AnimalID = vRec.ClientID
    Passage.ClientID = vRec.ClientID
    Passage.DatePassage = vRec.DatePassage
    Passage.TimePassage = vRec.TimePassage
    Passage.VisitorID = vRec.VisitorID
    Passage.VisitReport = vRec.VisitReport
    Passage.Photo = Decrypt (vRec.Photo, "", cryptNone, encodeBASE64)
    HAdd (Passage)
    RESULT "OK"

    Everything is fine except I can not send image. I get empty field "Photo".
    Please, can you help me to complete this code so I can send images over webservice.
     
  2. Hartyshow

    Hartyshow Member

    Inscrit:
    Août 10, 2018
    Messages:
    86
    J'aime reçus:
    33
    Hi,

    Looking for :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  3. LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    648
    J'aime reçus:
    227
    Hi
    First send data without image, then send the image, you mixed it your self. You better separate the two procedure. If you do it once, let me know. In Older version it was not possible
     
  4. Jackson

    Jackson Member

    Inscrit:
    Jan 19, 2018
    Messages:
    50
    J'aime reçus:
    19
    maReq..ContentType = "application / json" OR maReq..ContentType = "image/jpeg"
    How to know or get answer from server where to send image. It is database field so I need to know record number to modify/update it.
    REST service respond with "OK", "403",... Is there possibility to return RecordNumberID. With that I can then send httpPut request to update record with image.
    Can you write some sample code?
     
  5. Jackson

    Jackson Member

    Inscrit:
    Jan 19, 2018
    Messages:
    50
    J'aime reçus:
    19
    @ LAPIPE2018
    Voila. It can be mixed. :)

    Here is the answer and solution. For me, work like a charm
    On Android side code :

    // sAnimalPhoto is ANSI string = Encrypt (IMG_Photo, "", cryptNone, encodeBASE64)
    sAnimalPhoto is ANSI string = Encode (fLoadBuffer (IMG_Photo), encodeBASE64URL)

    o server side, in function:
    Passage.Photo = Decode (vRec.Photo, encodeBASE64URL)

    Voila. Work in Debug. I test it also on android smart phone. Work. :)
     
    LAPIPE2018 et suenodesign aiment ça.
  6. LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    648
    J'aime reçus:
    227
    Hi,
    How did you sens de SAnimalPhoto variable. In the Class or alone ?
     
  7. Jackson

    Jackson Member

    Inscrit:
    Jan 19, 2018
    Messages:
    50
    J'aime reçus:
    19
    There is no any of class. Only variables and procedures.
    [​IMG]
    [​IMG]

    You can see application video from this link:

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    #7 Jackson, Mar 28, 2020
    Dernière édition: Mar 28, 2020
  8. Jackson

    Jackson Member

    Inscrit:
    Jan 19, 2018
    Messages:
    50
    J'aime reçus:
    19
    Sorry. Video is here:

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    LAPIPE2018 apprécie ceci.
  9. LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    648
    J'aime reçus:
    227
    Hi,
    This will work for small size picture. Test with Video or large size, just to make it better.
    Kind
     
  10. Jackson

    Jackson Member

    Inscrit:
    Jan 19, 2018
    Messages:
    50
    J'aime reçus:
    19

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    In full format, I send it over webservice in HF C/S database. Work like a charm
    You can see it above, streched option so it can be viewed. I test it with Samsung S10 - FHD (2288x1080)
    [​IMG]
     
    LAPIPE2018 apprécie ceci.

Partager cette page

Chargement...