Encoder base64 un fichier jpg

Résolu
Signaler
Messages postés
18
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
22 janvier 2013
-
Messages postés
18
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
22 janvier 2013
-
bonjour,
Pour faire un upload vers un serveur d'images, j'utilise une méthode xmlrpcUpload exportée parle serveur.
Le 1° paramètre de la méthode est le contenu du fichier image encodé base64.
En php, cela donne
        $client->query('apiXml.xmlrpcUpload',base64_encode(file_get_contents($_FILES['up_img']['tmp_name'])),$_FILES['up_img']['name'],$_REQUEST['titre'],$_REQUEST['description'],    "$idZimagez");

en VB6, j'utilise la dll vbXMLRPC, mais je n'arrive pas à passer correctement le premier paramètre.
Quelqu'un sait t'il faire cela ?
Merci
JPB

5 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
ne fais pas de boucle pour la lecture, c'est contre-performant.

Dim bFile() As Byte
Open "c:\temp\foto-1343541.jpg" For Binary As #1
ReDim bFile(LOF(1))
Get #1,, bFile
Close #1

sinon, pas vu de détails concernant apiXml....
Messages postés
18
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
22 janvier 2013

pour l'encodage, j'ai trouvé ceci:
http://www.nonhostile.com/howto-encode-decode-base64-vb6.asp.
idem ce que tu m'indiques:
Public Function Base64Enc(ByRef vxbData() As Byte) As String
    With CreateObject("MSXML.DOMDocument").createElement("Base64")
        .dataType = "bin.base64"
        .nodeTypedValue = vxbData
        Base64Enc = .Text
    End With
End Function

mon problème est plutôt du côté de la création du tableau vbxData().
j'ai fait ainsi. chez moi il s'appelle bFile():

    Dim b As Byte
    Dim bFile() As Byte
    Dim a As Integer
    Open "c:\temp\foto-1343541.jpg" For Binary As #1
    ReDim bFile(LOF(1))
    For a = 1 To LOF(1)
        Get #1, a, b
        bFile(a) = b
    Next a
    Close #1

Et c'est sans doute là que ça coince ....

Je n'ai pas de déclaration d'API avec cette dll    vbXMLRPC
côté serveur, il y a une API    www.zimagez.com/apiXml.php qui exporte entre autres la méthode xmlrpcUpload
cette méthode attend 4 paramètres string. Le premier est celui que j'évoque ici ..les autres sont des chaines de caratères sans pb.
merci de ton aide
JPB
Messages postés
18
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
22 janvier 2013

Je poursuis mes investigations avec la collaboration du support de chez zimagez.com et de l'auteur de la library vbXMLRPC.dll.
 Dès que j'aurais mis au point, je mettrais une contribution sur le site, parce qu'il n'y a pas grand chose sur la mise en oeuvre de la technologie XMLRPC avec VB.
Merci de ton aide
Messages postés
18
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
22 janvier 2013

C'est bon ..ça fonctionne bien.
J'ai utilisé la modification de code proposée et une fonction EncodeBase64.
Et surtout j'ai corrigé un des paramètres attendus par la méthode du serveur php (le nom du fichier image ... avec son extension !!)
Je prépare un code exemple pour l'utilisation de XMLRPC (webservice) en VB6