0

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

我该怎么做呢?我不确定从哪里开始?

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

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

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

我的呼叫声明以蓝色下划线显示,给出的两个错误如下所示:

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

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

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

提前致谢。

4

1 回答 1

2

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

从 aFileUpload你应该可以访问.FileBytesand .FileName,避免需要弄乱Stream等。

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

using(var stream = new MemoryStream(theByteArray)) {...}
于 2012-05-04T07:28:13.483 回答