Encoder base64 un fichier jpg [Résolu]

jpb14 18 Messages postés jeudi 13 mai 2004Date d'inscription 22 janvier 2013 Dernière intervention - 1 avril 2008 à 14:26 - Dernière réponse : jpb14 18 Messages postés jeudi 13 mai 2004Date d'inscription 22 janvier 2013 Dernière intervention
- 2 avril 2008 à 15:19
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
Afficher la suite 

5 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 1 avril 2008 à 14:55
+3
Utile
http://www.codyx.org/snippet_chaine-vers-base-64-vice-versa_62.aspx#1651

quelle déclaration d'API utilsies tu ?
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 1 avril 2008 à 15:33
+3
Utile
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....
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
jpb14 18 Messages postés jeudi 13 mai 2004Date d'inscription 22 janvier 2013 Dernière intervention - 1 avril 2008 à 15:25
0
Utile
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
Commenter la réponse de jpb14
jpb14 18 Messages postés jeudi 13 mai 2004Date d'inscription 22 janvier 2013 Dernière intervention - 1 avril 2008 à 17:17
0
Utile
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
Commenter la réponse de jpb14
jpb14 18 Messages postés jeudi 13 mai 2004Date d'inscription 22 janvier 2013 Dernière intervention - 2 avril 2008 à 15:19
0
Utile
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
Commenter la réponse de jpb14

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.