By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
457,887 Members | 1,150 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 457,887 IT Pros & Developers. It's quick & easy.

How to send a DIME attachment with SOAP

P: n/a
Hi!

I am trying SOAP with DIME attachments in web services. The web
service sends the file as attachment say "test.doc", and the client
has to read that and populate it in a textbox control. I had asked
this question earlier, and got the reply that the data is tranferred
in binary format on the wire. I read the stream, and convert it to
string, but I get some junk characters in my textbox. I am writing my
code below, so that you can see what I am doing wrong, and correct me.
This is what I do:

On Server:
----------
[WebMethod]
public void GetDoc()
{
SoapContext respContext = ResponseSoapContext.Current;
DimeAttachment dimeAttach = new DimeAttachment("application/msword",
TypeFormat.MediaType,
@"D:\Images\Test.doc");
respContext.Attachments.Add(dimeAttach);
}

On Client:
----------
private void btnGetDoc_Click(object sender, System.EventArgs e)
{
MyDimeService svc = new MyDimeService();
svc.GetDoc();
if (svc.ResponseSoapContext.Attachments.Count == 1)
{
MessageBox.Show("Got it!\n");
// Get the stream and do something with it
Stream s = svc.ResponseSoapContext.Attachments[0].Stream;
byte [] binaryData = new byte[s.Length];
long bytesRead = s.Read(binaryData, 0, binaryData.Length);
s.Close();
string base64String;
try
{
base64String = System.Convert.ToBase64String(binaryData, 0,

binaryData.Length);
}
catch (System.ArgumentNullException)
{
System.Console.WriteLine("Binary data array is null.");
return;
}
txtGetDoc.Text = base64String;
} //end of if
} //end of private..

Waiting for an answer...

Thanks
Ipsita
Nov 18 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
what are you expecting to appear in the textbox?

from your code I'd expect the textbox to contain the base64 string which is
the encoding of the binary data, and from your description it sounds like
you are getting that.

a textbox only supports displaying plain text, if test.doc cannot be viewed
correctly with notepad.exe, a textbox cannot either.

-- bruce (sqlwork.com)

"Ipsita" <ip************@gmail.com> wrote in message
news:ef**************************@posting.google.c om...
Hi!

I am trying SOAP with DIME attachments in web services. The web
service sends the file as attachment say "test.doc", and the client
has to read that and populate it in a textbox control. I had asked
this question earlier, and got the reply that the data is tranferred
in binary format on the wire. I read the stream, and convert it to
string, but I get some junk characters in my textbox. I am writing my
code below, so that you can see what I am doing wrong, and correct me.
This is what I do:

On Server:
----------
[WebMethod]
public void GetDoc()
{
SoapContext respContext = ResponseSoapContext.Current;
DimeAttachment dimeAttach = new DimeAttachment("application/msword",
TypeFormat.MediaType,
@"D:\Images\Test.doc");
respContext.Attachments.Add(dimeAttach);
}

On Client:
----------
private void btnGetDoc_Click(object sender, System.EventArgs e)
{
MyDimeService svc = new MyDimeService();
svc.GetDoc();
if (svc.ResponseSoapContext.Attachments.Count == 1)
{
MessageBox.Show("Got it!\n");
// Get the stream and do something with it
Stream s = svc.ResponseSoapContext.Attachments[0].Stream;
byte [] binaryData = new byte[s.Length];
long bytesRead = s.Read(binaryData, 0, binaryData.Length);
s.Close();
string base64String;
try
{
base64String = System.Convert.ToBase64String(binaryData, 0,

binaryData.Length);
}
catch (System.ArgumentNullException)
{
System.Console.WriteLine("Binary data array is null.");
return;
}
txtGetDoc.Text = base64String;
} //end of if
} //end of private..

Waiting for an answer...

Thanks
Ipsita

Nov 18 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.