2010-04-06 10 views
1

Je suis capable de 'POSTER' une application Rails (avec Paperclip) en utilisant XML au lieu du formulaire web standard (en essayant de le faire à partir d'un autre script Ruby). Cependant, j'aimerais inclure un fichier binaire.Rails Paperclip Fichier XML POST

Y a-t-il un moyen d'inclure les données binaires dans une balise XML? Ou puis-je faire quelque chose comme B64 coder les données sur le client, puis le décoder avant qu'il ne touche le plugin Paperclip?

MISE À JOUR:
Le navigateur envoie un POST avec ces données (entre autres):

Content-Disposition: form-data; name="upload[upload]"; filename="foo.jpg" 
Content-Type: image/jpeg 

ÿØÿà�JFIF��`�`��ÿþ�Created by AccuSoft Corp.ÿÛ�C�... 

Je voudrais répliquer, mais dans des documents XML

+0

Donc, pour clarifier, vous allez télécharger un document XML qui a incorporé bina ry données? –

+0

Oui, voir l'article mis à jour ci-dessus – Fotios

+0

Avez-vous trouvé une solution? J'ai le même problème en ce moment. – Matt

Répondre

2

La version courte est: utilise type="file" , base64-encoder le fichier, et le mettre dans un bloc CDATA. Je d'abord trouvé une explication à ce lien:

http://techblog.floorplanner.com/2010/02/15/restful-uploading-of-files-using-xml/

Ce lien semble avoir mort, donc je vous recommande de vérifier la copie Internet Archive du blog:

http://web.archive.org/web/20100825030057/http://techblog.floorplanner.com/2010/02/15/restful-uploading-of-files-using-xml/

également lié à partir de ce poste est une gemme qui implémente un encodeur pour les fichiers publiés sur Rails comme XML: https://github.com/nragaz/encoded_attachment