Razor表单 - 上传并附加到电子邮件

时间:2011-09-09 13:43:50

标签: razor umbraco

我正在Umbraco CMS上实施一个剃须刀联系表格,其中包括使用.Net的MailMessage创建和发送电子邮件的内联C#脚本。最终用户现在需要能够上传文件,该文件将作为附件添加到电子邮件中。

据我所知,唯一的方法是上传到磁盘,然后从磁盘加载附件。

是否可以在不写入磁盘的情况下上传和附加?请记住,没有代码隐藏或控制器 - 这是所有内嵌剃刀逻辑。

2 个答案:

答案 0 :(得分:2)

您需要将InputStream从上传的文件传递到MailMessage的Attachment构造函数:

if(IsPost && Request.Files.Count > 0){
    var file = Request.Files[0];
    var fileName = file.FileName;
    var attachment = new Attachment(file.InputStream, fileName);       
    ...
    ...

确保(除非您使用FileUpload Helper)将表单的方法设置为POST,添加值enctype的{​​{1}}属性,并提供multipart/form-data具有input type=file属性。

答案 1 :(得分:0)

我不确定剃刀有多大可能,但应该可以上传并附加到电子邮件而无需保存到磁盘。使用从上传控件的FileUpload.FileContent property获得的Stream。然后将其传递给MailMessage Attachement的this constructor

另外,为什么不使用代码隐藏?