SOAP::MIME - Patch to SOAP::Lite to add attachment support. This module allows Perl clients to both compose messages with attachments, and to parse messages with attachments.
Currently the module does not support server side parsing of attachments.
SOAP::Lite (http://www.soaplite.com/) is a SOAP Toolkit that allows users to create SOAP clients and services. As of July 15, 2002, MIME support in SOAP::Lite was minimal. It could parse MIME formatted messages, but the data contained in those attachments was ``lost.'' This Perl module, patches SOAP::Lite so that those MIME attachments are stored and placed into a SOAP::SOM object.
6/12/2002 - Need to add ability to compose and send attachments. FIXED on 7/15/2002 7/15/2002 - Ability to process attachments on the server side has not yet been tested.
attachments()
returns a hash containing the attachments
parsed out of a message. The keys to the returned hash is the
content-id of the associated attachment. The value of the hash is
an array containing the content-type, the ???, and the content of
the attachment itself:
@(<content-type>,%HASH,<content>)
use SOAP::Lite; use SOAP::MIME;
my $soap = SOAP::Lite ->readable(1) ->uri($NS) ->proxy($HOST); my $som = $soap->foo();
foreach my $cid (keys %{$som->attachments}) { print "Attachment content-id: " . $cid . "\n"; foreach my $foo (@{$som->attachments->{$cid}}) { print " Array elem: $foo\n"; } }
use SOAP::Lite; use SOAP::MIME; use MIME::Entity;
my $ent = build MIME::Entity Type => "image/gif", Encoding => "base64", Path => "somefile.gif", Filename => "saveme.gif", Disposition => "attachment";
my $som = SOAP::Lite ->readable(1) ->uri($SOME_NAMESPACE) ->parts([ $ent ]) ->proxy($SOME_HOST) ->some_method(SOAP::Data->name("foo" => "bar"));