如何将文件传递给Web方法?

时间:2012-05-04 05:55:55

标签: c# file file-upload webmethod

我想将文件传递给[Webmethod],然后将其作为电子邮件附件发送。

我将如何做到这一点?我不确定从哪里开始?

FileUpload1.PostedFile.FileName FileUpload1.FileContent 是我要传递给我[webmethod]的两件事。

我的问题是 FileUpload1.FileContent ,因为我已经可以将 FileUpload1.PostedFile.FileName 作为字符串发送

lblEmailSent.Text = Send.Sendemail(txtTo.Text, txtSubject.Text, txtbody.Text, FileUpload1.PostedFile.FileName, FileUpload1.FileContent);

My Call Statement用蓝色下划线,给出的两个错误如下:

  

* 1) *最佳重载方法匹配   'WebTestServiceApp.localhost.Service1.Sendemail(字符串,字符串,   string,string,WebTestServiceApp.localhost.Stream)'有一些无效   参数

     

* 2) *参数5:无法从'System.IO.Stream'转换为   'WebTestServiceApp.localhost.Stream'

请有人告诉我如何将 FileUpload1.FileContent 发送到[Webmethod]

提前致谢。

1 个答案:

答案 0 :(得分:2)

我的建议是:忘记FileUpload - 只需传递byte[]string(为了名称或其他任何需要的内容)。这应该由系统处理为base-64。

FileUpload您应该有权访问.FileBytes.FileName,从而避免混淆Stream等。

在接收端(带byte[]参数),只需:

using(var stream = new MemoryStream(theByteArray)) {...}
相关问题