如何在不使用c#中的httppostedfilebase的情况下发送电子邮件附件?

如何在不使用c#中的httppostedfilebase的情况下发送电子邮件附件?,c#,angularjs,asp.net-mvc,email-attachments,C#,Angularjs,Asp.net Mvc,Email Attachments,我使用angularjs通过ajax提交表单,以调用mvc控制器中的操作。和 使用我的角度指令,我可以获得所选文件的文件名、contenttype和contentlength。我从angular提取的这三个信息是否足以将文件附加到我的电子邮件中?谢谢大家的帮助 我可以获取所选文件的文件名、contenttype和contentlength 文件 不,这还不足以将文件作为附件发送到邮件。如果没有文件的内容,上述所有详细信息都没有价值 编辑:如果您计划在mvc控制器中发布HttpPostedFile

我使用angularjs通过ajax提交表单,以调用mvc控制器中的操作。和 使用我的角度指令,我可以获得所选文件的文件名、contenttype和contentlength。我从angular提取的这三个信息是否足以将文件附加到我的电子邮件中?谢谢大家的帮助

我可以获取所选文件的文件名、contenttype和contentlength 文件

不,这还不足以将文件作为附件发送到邮件。如果没有文件的内容,上述所有详细信息都没有价值

编辑:如果您计划在mvc控制器中发布HttpPostedFileBase,则可以按如下方式提取上述详细信息

要获得扩展名,请执行以下操作:

string extension = Path.GetExtension(upload.FileName);
其中上载类型为HttpPostedFileBase

要获取文件名,请执行以下操作:

string fileName = Path.GetFileName(upload.FileName);
要获取文件类型,请执行以下操作:

string contentType = upload.ContentType

除了@J-D的答案是正确的之外,请解释一下您试图解决的实际问题,因为这闻起来像是XY问题。这可能类似于“我希望我的网站的访问者能够在每封电子邮件中发送大文件,但我不想等待上传”。那么你的实际问题是电子邮件不是发送大文件的合适媒介。基本上我有一个在线申请表,用户可以附上他们的简历。我已经使用模式表单填写了姓名字段、电子邮件字段等。。提交表单后,我使用angular获取信息,并通过ajax调用将这些信息传递给mvc action controller。在本例中,我没有使用HttpPostedFileBase。使用指令我可以得到文件名、类型和contentlength。你不能用它做任何事情。你需要上传文件。你是说HttpPostedFileBase是将文件附加到电子邮件的唯一方法吗?不,我是说,为了将客户端的文件附加到服务器发送的邮件,你必须将该文件从客户端上载到服务器。HttpPostedFileBase是上传文件的方法之一。另请参见。我试图将这三个信息传递给httppostedfilebase,但它显示为只读。有没有办法将其转换为与httppostedfilebase匹配的文件?从昨晚开始我就在谷歌上搜索和搔头。感谢您的输入。为什么您需要传递这些信息,而这些信息已经存在于其中。看看这个。因此,当您发布一个文件时,它会自动将该字段分配给HttpPostedFileBase类,您可以从c#代码中读取该字段。我不能使用HttpPostedFileBase,因为每当我使用ajax.post使用它时,它总是返回null。如果我要使用普通的Html.Begin格式,那很好,但是后退就是回发。最后,我使用modal通过ajax.post提交表单。