我正在Umbraco CMS上实施一个剃须刀联系表格,其中包括使用.Net的MailMessage创建和发送电子邮件的内联C#脚本。最终用户现在需要能够上传文件,该文件将作为附件添加到电子邮件中。
据我所知,唯一的方法是上传到磁盘,然后从磁盘加载附件。
是否可以在不写入磁盘的情况下上传和附加?请记住,没有代码隐藏或控制器 - 这是所有内嵌剃刀逻辑。
答案 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。
另外,为什么不使用代码隐藏?