From: lists Date: 2008-04-16T21:31:29+09:00 Subject: Re: How to send a file via XML RPC On Apr 15, 2008, at 6:56 PM, e deleflie wrote: > Does anyone have some sample code showing how to send a file via XML > RPC? I can't remember where I first saw this. $ cat client.rb #!/usr/bin/ruby require 'xmlrpc/client' require 'base64' data = IO.read('/tmp/test.jpg') encoded_file = Base64.encode64(data) server = XMLRPC::Client.new3({'host'=>'localhost', 'port'=>8888, 'timeout'=>30}) if server.call("put_file", encoded_file) puts "ok" end puts result $ cat server.rb #!/usr/bin/ruby $SAFE = 1 require "xmlrpc/server" require 'base64' s = XMLRPC::Server.new(8888) s.add_handler("put_file") { |encoded_file| Dir.chdir('/tmp/test') File.open('test.jpg', 'w+') { |file| file.puts( Base64.decode64(encoded_file) ) } true } s.serve